我有一个大数据(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 /技术获得一些建议。
谢谢!
您需要做的是使用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))