Pandas:如何计算一列和多列之间的相关性?

2024-06-17 13:09:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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与同一数据帧的某些特定(并非全部)列之间的相关性,以生成如下输出数据帧:

^{pr2}$

我曾试过用一种衬垫,比如:

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

但是,我在如何编写函数以便它迭代指定的列(x1和{})以及如何将y指定为固定列有困难。在

有谁知道一个优雅的一行可以做到这一点吗?在


Tags: 数据importnumpydataframepandasdfasnp