gpt4 book ai didi

python - pandas Series 和整个 DataFrame 之间的相关性

转载 作者:太空狗 更新时间:2023-10-30 01:05:50 24 4
gpt4 key购买 nike

我有一系列值,我希望计算给定表格每一行的 PIL 逊相关系数。

我该怎么做?

例子:

import pandas as pd

v = [-1, 5, 0, 0, 10, 0, -7]
v1 = [1, 0, 0, 0, 0, 0, 0]
v2 = [0, 1, 0, 0, 1, 0, 0]
v3 = [1, 1, 0, 0, 0, 0, 1]

s = pd.Series(v)
df = pd.DataFrame([v1, v2, v3], columns=['a', 'b', 'c', 'd', 'e', 'f', 'g'])

# Here I expect ot do df.corrwith(s) - but won't work

使用Series.corr()计算,预期输出为

-0.1666666666666666  # correlation with the first row
0.83914639167827343 # correlation with the second row
-0.35355339059327379 # correlation with the third row

最佳答案

您需要 SeriesindexDataFramecolumns 相同,以对齐 Series 通过 DataFrame 并在 corrwith 中添加 axis=1对于逐行相关:

s1 = pd.Series(s.values, index=df.columns)
print (s1)
a -1
b 5
c 0
d 0
e 10
f 0
g -7
dtype: int64

print (df.corrwith(s1, axis=1))
0 -0.166667
1 0.839146
2 -0.353553
dtype: float64

print (df.corrwith(pd.Series(v, index=df.columns), axis=1))
0 -0.166667
1 0.839146
2 -0.353553
dtype: float64

编辑:

您可以指定列并使用子集:

cols = ['a','b','e']

print (df[cols])
a b e
0 1 0 0
1 0 1 1
2 1 1 0

print (df[cols].corrwith(pd.Series(v, index=df.columns), axis=1))
0 -0.891042
1 0.891042
2 -0.838628
dtype: float64

关于python - pandas Series 和整个 DataFrame 之间的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41806661/

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