是否可以返回全部数据而不仅仅是我们分组的一部分?
我的意思是例如 - 我有一个包含 5 列的数据框,其中一列包含distance
,另一列是timestamp
,最后一个重要的是name
. 我通过timestamp
应用的 agg 函数对数据帧进行分组(min) on distance
。作为回报,我得到了带有时间戳和距离的正确分组数据帧 - 我如何在name
那里添加列。如果我也将它分组,name
那么timestamp
它就会重复——它必须保持独特。作为最终结果,我需要获得这样的数据框:
时间戳 | 姓名 | 距离 |
---|---|---|
2020-03-03 15:30:235 | 比利 | 123 |
2020-03-03 15:30:435 | 约翰尼 | 111 |
但是我得到了这个:
时间戳 | 距离 |
---|---|
2020-03-03 15:30:235 | 123 |
2020-03-03 15:30:435 | 111 |
整个表有超过 700k 行,所以重新加入它distance
给了我我的 PC 甚至无法处理的行数。
这是我的groupby
,它给了我第二张桌子:
grouped_df = df1.groupby('timestamp')['distance'].min()
这是我为了name
进入桌子而尝试做的事情:
grouped_df.merge(df1, how='left', left_on=['timestamp','distance'],
right_on = ['timestamp','distance'])
你试一试
out = df.sort_values('distance').drop_duplicates('timestamp')
然后尝试 transform
m = df.groupby('timestamp')['distance'].transform('min')
dout = df[df.distance==m]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句