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

Group by ids, sort by date and get values as list on big data python

我有一个大数据(3000 万行)。 每个 table 都有 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

愿望table:

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

我可以通过 for 循环、应用来完成,但它没有效果,而且对于数以百万计的用户来说,这是不可行的。 我考虑过使用 group by 并对日期进行排序,但我不知道如何制作列表,如果是这样,pandas df 上的 groupby 是最好的方法吗?

我很乐意就如何操作以及使用哪种 df/technology 获得一些建议。

谢谢!

您需要做的是使用 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))