按ID分组,按日期排序并获取值作为大数据python上的列表

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

我有一个大数据(3000万行)。每个表都有id,date,value。我需要遍历每个id,并根据这些id获取按日期排序的值列表,因此第一个值是列表,它将是较旧的日期。

示例:

ID     DATE     VALUE
1   02/03/2020   300
1   04/03/2020   200
2   04/03/2020   456
2   01/03/2020   300
2   05/03/2020   78

需求表:

ID     VALUE_LIST_ORDERED     
1      [300,200]
2      [300,456,78]

我可以通过for循环,应用来实现它,但是它没有效果,并且拥有数百万用户,这是不可行的。我曾考虑过使用分组依据对日期进行排序,但我不知道要列出一个列表,如果这样,最好在熊猫df上使用分组依据?

我很乐意就如何做以及使用哪种df /技术获得一些建议。

谢谢!

python group-by bigdata pandas-groupby
1个回答
0
投票

您需要做的是使用pandas.dataframe.sort_values排序数据,然后应用groupby方法

我没有大量数据可用来测试此代码,但我相信这可以解决问题:

sorted = data.sort_values('DATE')
result = data.groupby('ID').VALUE.apply(np.array)

而且由于它是Python,所以您始终可以将所有内容放在一个语句中

print(data.sort_values('DATE').data.groupby('ID').VALUE.apply(np.array))
© www.soinside.com 2019 - 2024. All rights reserved.