gpt4 book ai didi

python - Pandas :如何计算一列与其他多列之间的相关性?

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:26 25 4
gpt4 key购买 nike

import pandas as pd
import numpy as np

df = pd.DataFrame({'group': ['a'] * 5 + ['b'] * 5, 'x1': np.random.normal(0, 1, 10), 'x2': np.random.normal(0, 1, 10), 'y': np.random.normal(0, 1, 10)})

df
Out[4]:
group x1 x2 y
0 a -0.468746 1.254817 -1.629483
1 a -1.849347 -2.776032 1.413563
2 a 1.186306 0.766866 0.163395
3 a -0.314397 -0.531984 0.473665
4 a 0.278961 0.510429 1.484343
5 b 2.240489 0.856263 0.369464
6 b 2.029284 1.020894 -0.042139
7 b 1.571930 -0.415627 0.865577
8 b 0.609133 1.370543 0.450230
9 b -1.820421 -0.211467 0.704480

我想按组计算 y 与同一数据帧的某些特定(不是全部)列之间的相关性,以生成如下所示的输出数据帧:

Out[5]: 
x1 x2
a -0.168390 -0.622155
b -0.467561 -0.771757

我曾尝试使用像这样的单线:

df.groupby('group')[['x1', 'x2']].apply(...some function here that takes y as argument...)

但是,我在如何编写函数以使其遍历指定列(x1x2)以及如何指定 方面遇到困难y 作为固定列。

有谁知道可以实现这一目标的优雅单行代码?

最佳答案

使用groupby + corrwith

df.groupby('group').apply(lambda d: d.filter(like='x').corrwith(d.y))

x1 x2
group
a 0.127141 0.434080
b -0.892755 0.524215

关于python - Pandas :如何计算一列与其他多列之间的相关性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41371312/

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