Skip to main content
 首页 » 编程设计

python之pandas:计算表行之间的相关性

2025年05月04日21开发

我有一个包含两个类别字段和一个计数的值表。我需要根据它们在另一类别中的计数来计算一个类别的行之间的相关性。

例如:

Category_A|Category_B|Count 
Alan      |Turkey    |7 
Alan      |Ham       |1 
Alan      |Spam      |0 
... 
Bob       |Turkey    |2 
Bob       |Ham       |9 
Bob       |Spam      |12 
... 

我需要在这样的表中获取 Pearson 与 p 值的相关性:

Category_A_1|Category_A_2|Correlation|P Value 
Alan        |Bob         |0.7        |0.07 

我不知道如何在 Pandas 中执行此操作。请帮忙。谢谢!

请您参考如下方法:

corrs = df.pivot('Category_A','Category_B').T.corr().stack() 
#Category_A  Category_A 
#Alan        Alan          1.000000 
#            Bob          -0.986552 
#Bob         Alan         -0.986552 
#            Bob           1.000000 
corrs.index.names = 'A','B' 
corrs.reset_index() 
#      A     B         0 
#0  Alan  Alan  1.000000 
#1  Alan   Bob -0.986552 
#2   Bob  Alan -0.986552 
#3   Bob   Bob  1.000000 

遗憾的是,Pandas 没有计算 p 值的工具。