要对数据帧中的多个组运行Pearson相关性测试,你可以按照以下步骤操作:
import pandas as pd
import numpy as np
from scipy.stats import pearsonr
data = {'Group': ['A', 'A', 'A', 'B', 'B', 'B'],
'X': [1, 2, 3, 4, 5, 6],
'Y': [2, 4, 6, 8, 10, 12]}
df = pd.DataFrame(data)
def calculate_pearson_correlation(group_df):
correlation, p_value = pearsonr(group_df['X'], group_df['Y'])
return correlation, p_value
groupby
方法按组对数据帧进行分组,并应用上面定义的函数:grouped = df.groupby('Group').apply(lambda x: calculate_pear彰son_correlation(x[['X', 'Y']]))
print(grouped)
这将输出每组的Pearson相关性和p值:
Group
A (1.0, 0.0)
B (1.0, 0.0)
dtype: object
这个示例中,我们有两个组(A和B),每个组都有X和Y两个变量。我们计算了每组的Pearson相关性,并得到了相关系数和p值。
领取专属 10元无门槛券
手把手带您无忧上云