如何在分类列之间执行关联

时间:2017-01-24 12:00:18

标签: python pandas

我在数据帧df1中有一组列(col1,col2,col3) 我在数据帧df2中有另一组列(col4,col5,col6) 假设这两个数据帧具有相同的行数。

如何生成在df1和df2之间进行成对关联的相关表?

表格看起来像

    col1 col2 col3
col4 ..   ..   ..
col5 ..   ..   ..
col6 ..   ..   ..

我使用df1.corrwith(df2),似乎没有按要求生成表格。

我在这里问了一个类似的问题: How to perform Correlation between two dataframes with different column names 但现在我正在处理分类专栏。

如果不能直接比较,是否有一种标准方法可以使其具有可比性(如使用get_dummies)?并且这是一种更快速的方法来自动处理所有字段(假设所有字段都是分类的)并计算它们的相关性?

1 个答案:

答案 0 :(得分:5)

你是正确的,需要pd.get_dummies来获得相关性。下面,我将使用两个分类列创建一些假数据,然后使用corrwith

df = pd.DataFrame({'col1':np.random.choice(list('abcde'),100),
                  'col2':np.random.choice(list('xyz'),100)}, dtype='category')
df1 = pd.DataFrame({'col1':np.random.choice(list('abcde'),100),
                   'col2':np.random.choice(list('xyz'),100)}, dtype='category')

dfa = pd.get_dummies(df)
dfb = pd.get_dummies(df1)
dfa.corrwith(dfb)

col1_a   -0.057735
col1_b    0.002513
col1_c    0.137956
col1_d   -0.095050
col1_e   -0.114022
col2_x    0.022568
col2_y   -0.081699
col2_z   -0.128350