【问题标题】:Pandas correlation function with multiple conditions具有多个条件的 Pandas 相关函数
【发布时间】: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


    【解决方案1】:

    这有帮助吗?

    cols=['Wire_rows','Columns']
    d={}
    for col in cols:
        d[col]={0:np.nan}
    df.replace(d).corr().loc['Area']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 2018-10-20
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      相关资源
      最近更新 更多