Pandas DataFrame中两个非数字列之间的关联

mad*_*tma 4 python matplotlib correlation pandas

我从表中的SQL查询中获取数据到熊猫数据框。数据如下:

     group phone_brand
0      M32-38          ??
1      M32-38          ??
2      M32-38          ??
3      M29-31          ??
4      M29-31          ??
5      F24-26        OPPO
6      M32-38          ??
7      M32-38          ??
8      M32-38        vivo
9      F33-42          ??
10     M29-31          ??
11     F33-42          ??
12     F27-28          ??
13     M32-38          ??
14       M39+         ???
15     F27-28          ??
16     M32-38          ??
17     M32-38          ??
18       M39+          ??
19     M32-38          ??
20     F33-42          ??
21     M23-26          ??
22     M23-26          ??
23     M27-28          ??
24     M29-31          ??
25     M32-38          ??
26     M32-38          ??
27     F33-42          ??
28     M32-38          ??
29     M32-38          ??
...       ...         ...
74809  M27-28          ??
74810  M29-31         TCL
Run Code Online (Sandbox Code Playgroud)

现在,我想找到从此到列的相关性和频率。但这在Matplotlib的可视化中。我尝试类似的东西:

DataFrame.plot(style='o')
plt.show() 
Run Code Online (Sandbox Code Playgroud)

现在,我如何以最简单的方式可视化这种关联?

piR*_*red 6

要快速获得相关性:

df.apply(lambda x: x.factorize()[0]).corr()

                group  phone_brand
group        1.000000     0.427941
phone_brand  0.427941     1.000000
Run Code Online (Sandbox Code Playgroud)

热图

import seaborn as sns

sns.heatmap(pd.crosstab(df.group, df.phone_brand))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明