[嗨,我正在运行一些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'])
我有一段类似的代码,我认为这可能会更快:尝试corr_series = df.groupby(['date','id'])[['x','y']].corr()['y'][:,'x']
这样,您就不会与外部序列(即使是在分组之前只是df
的外部序列)运行相关性,而是在groupby
对象内部计算相关性。
希望有帮助。