如何基于熊猫中的不同列创建关联?

时间:2020-03-30 13:01:12

标签: python pandas dataframe correlation

我有这样的数据:

Users_id        My_Fav         Bro_Fav          Friend_Fav
User0             BMW            VW                BMW
UserA             VW             Mercedes          Honda
UserB             Honda          Honda             VW
UserC             Mercedes       BMW               Mercedes
UserD             VW             BMW               BMW

我希望输出用于列和品牌之间的相关性,所需的输出将是这样的:

                      My_Fav         Bro_Fav          Friend_Fav
BMW                     1               2                2
VW                      2               1                1
Honda                   1               1                1
Mercedes                1               1                1

2 个答案:

答案 0 :(得分:2)

您可以对每列的列值进行计数,然后对每个索引值计算sum,如有必要,请在第一步中将Users_id列转换为索引:

#Users_id is column
df = df.set_index('Users_id').apply(pd.value_counts).sum(level=0)

#Users_id is index
#df = df.apply(pd.value_counts).sum(level=0)
print (df)
          My_Fav  Bro_Fav  Friend_Fav
BMW            1        2           2
Honda          1        1           1
Mercedes       1        1           1
VW             2        1           1

答案 1 :(得分:1)

IIUC melt + crosstab

s=df.melt('Users_id')
s=pd.crosstab(s.value,s.variable)
variable  Bro_Fav  Friend_Fav  My_Fav
value                                
BMW             2           2       1
Honda           1           1       1
Mercedes        1           1       1
VW              1           1       2
相关问题