【发布时间】:2021-01-21 11:55:28
【问题描述】:
Pandas .corr() 函数允许我获得特征之间的相关系数。当我需要满足多个条件时,我正在寻找一种计算相关系数的有效方法。
在我的例子中,我有一个数据框,其中每一行对应一个用栅栏隔离的特定区域。数据框中的列是区域范围和围栏材料(下面的简化示例)。只要值不为零,我想计算区域和每种材料的相关矩阵。例如,与
df = pd.DataFrame({'Area': [0.5, 4, 2, 1], 'Wire_rows': [3, 9, 5, 0], 'Columns': [4, 16, 0, 5]})
然后df.corr().loc['Area', :] 给出了面积与“Wire_rows”和“Columns”之间的相关性。如果我想让这个计算排除材料的零值,我必须写一些东西,比如
df[df['Wire_rows'] > 0].corr().loc['Area', 'Wire_rows']
df[df['Columns'] > 0].corr().loc['Area', 'Columns']
获得相关矩阵需要合并这些单独的部分。
在我的实际示例中,有超过 15 个材料列和几行,所以我想知道是否有更好的方法从单个计算中排除零值。
【问题讨论】:
标签: python pandas dataframe correlation