gpt4 book ai didi

python - .corr 如何删除 NA 和空值?

转载 作者:行者123 更新时间:2023-11-28 17:58:10 25 4
gpt4 key购买 nike

我是 pandas/python 的新手。我想知道函数 .corr 在计算相关性时如何删除具有多个变量的数据帧的空数据。

例如,假设我有以下数据框:

  #  'A1'  'A2' 'A3'
1 4 3 1
2 2 5 NA
3 3 2 NA
4 NA 10 2

1) 它是否删除了至少有一个 NA/null 值的整行? (在这种情况下,只会考虑第一行来计算相关矩阵)

2) 它是否计算成对相关性,只排除单个值? (例如,对于“A1”和“A2”之间的相关性,它计算第 1、2 和 3 行;对于“A1”和“A3”之间的相关性,它计算第 1 行和第 4 行。)

我没有在函数 .corr 文档中找到此类信息。它只是说它删除了空值。对不起,如果这是一个愚蠢的问题。我很乐意了解在哪里可以找到有关功能的此类详细信息。

最佳答案

如果其中一个观察值具有 NaN 值,Pandas 将忽略成对相关。我们可以通过删除这些值并检查结果来验证这一点。

df

Out[8]:
A1 A2 A3
0 4.0 3 1.0
1 2.0 5 NaN
2 3.0 2 NaN
3 NaN 10 2.0

具有以下关联结果:

df.corr()

Out[9]:
A1 A2 A3
A1 1.000000 -0.654654 NaN
A2 -0.654654 1.000000 1.0
A3 NaN 1.000000 1.0

现在,如果我们从 A1 列中删除 NaN,我们可以检查结果是否相同:

df[pd.isnull(df['A1'])==False].corr()

Out[10]:
A1 A2 A3
A1 1.000000 -0.654654 NaN
A2 -0.654654 1.000000 NaN
A3 NaN NaN NaN

类似于A3:

df[pd.isnull(df['A3'])==False].corr()

A1 A2 A3
A1 NaN NaN NaN
A2 NaN 1.0 1.0
A3 NaN 1.0 1.0

编辑

只是为了补充一点答案,并回头引用这个 answer ,您可以看到 pandas 将在计算中忽略 NaN 值,而 numpy np.corrcoef 不会:

np.corrcoef(df.values)

Out[12]:
array([[ 1., nan, nan, nan],
[nan, nan, nan, nan],
[nan, nan, nan, nan],
[nan, nan, nan, nan]])

关于python - .corr 如何删除 NA 和空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57155427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com