在Python中是否有更快的groupby相关性

问题描述 投票:1回答:1

[嗨,我正在运行一些python代码,该代码在按日期和ID分组的同时计算我的熊猫数据框中两列之间的相关性。例如,我的df如下所示:

date id    z      x   y
1    A     z1     x1  y1
1    A     z2     x2  y2
....
....
1    D     z_n-1  x2  y2
1    D     z_n    x2  y2

[不要只关注下标或数据的实际含义。而是专注于一般形式。对于给定的日期,我对给定的id有多次重复的观察,并且我想计算每个日期上每个id的“ x”和“ y”之间的相关性。我的df大约有240万行,大致分为200个日期。

我的获取相关性的代码显然可以工作(如果我等待足够长的时间,这似乎是一个微不足道的问题),但是它已经运行了大约7个小时,我想知道是否有人编写了自定义的内容可能运行得更快?无论如何,这里是代码

corr_df = df.groupby(['date','id'])['x'].corr(df['y'])
python pandas performance pandas-groupby
1个回答
1
投票

我有一段类似的代码,我认为这可能会更快:尝试corr_series = df.groupby(['date','id'])[['x','y']].corr()['y'][:,'x']

这样,您就不会与外部序列(即使是在分组之前只是df的外部序列)运行相关性,而是在groupby对象内部计算相关性。

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.