在Python中,您可以使用scipy.stats库来计算卡方统计量。
以下是一个示例代码,展示了如何计算卡方
Apply
import pandas as pd
import scipy.stats as stats
# 假设您已经有了一个包含分类数据的DataFrame
df = pd.DataFrame({
'Category': ['A', 'B', 'C', 'A', 'B', 'C'],
'Outcome': ['Yes', 'No', 'Yes', 'No', 'Yes', 'No']
})
# 创建一个列联表
contingency_table = pd.crosstab(df['Category'], df['Outcome'])
# 计算卡方统计量、p值、自由度和期望值
chi2, p, dof, expected = stats.chi2_contingency(contingency_table)
print(f"卡方统计量: {chi2}")
print(f"p值: {p}")
print(f"自由度: {dof}")
print(f"期望值: \n{expected}")
在这个示例中,我们首先创建了一个包含分类数据的DataFrame,然后使用pd.crosstab函数创建了一个列联表。接着,我们使用stats.chi2_contingency函数计算了卡方统计量、p值、自由度和期望值。
请注意,您需要根据您的实际数据和需求来调整代码。如果您的DataFrame中包含的是数值数据,您可能需要先将其转换为分类数据。