python求一列的和_python- pandas :如何计算一列与多列之间的相关性?

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...)

但是,我在如何编写函数以使其遍历指定的列(x1和x2)以及如何将y指定为固定列方面遇到困难.

有谁知道可以做到这一点的优雅一线?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值