我有一个大数据(3000万行(。 每个表都有 ID、日期、值。 我需要遍历每个 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))