gpt4 book ai didi

python-3.x - 如何使用 Python Pandas 将列的日期聚合到每个人的日期列表中?

转载 作者:行者123 更新时间:2023-12-05 02:00:36 25 4
gpt4 key购买 nike

我有以下数据,每行每个 ID 和 DATE。具有相同 ID 的人可以占据多行,因此可以占据多个日期。我想把它聚合成每行一个人(或ID),日期将聚合成一个日期列表

由此

ID   DATE
1 2012-03-04
1 2013-04-15
1 2019-01-09
2 2013-04-09
2 2016-01-01
2 2018-05-09

为此

ID   DATE
1 [2012-03-04, 2013-04-15, 2019-01-09]
2 [2013-04-09, 2016-01-01, 2018-05-09]

这是我的尝试

df.sort_values(by=['ID', 'DATE'], ascending=True, inplace=True)
df = df[['ID', 'DATE']]
df_pivot = df.groupby('ID').aggregate(lambda tdf: tdf.unique().tolist())
df_pivot = pd.DataFrame(df_pivot.to_records())

问题是它返回这样的东西

ID   DATE
1 [1375228800000000000, 1411948800000000000, 1484524800000000000]
2 [1524528000000000000, 1529539200000000000, 1529542200000000000]

这是什么日期格式?我似乎无法找到将其转换回典型日期格式的正确函数。

最佳答案

如果列表中需要唯一值,请使用 DataFrame.drop_duplicates在聚合 list 之前:

df = (df.sort_values(by=['ID', 'DATE'], ascending=True)
.drop_duplicates(['ID', 'DATE'])
.groupby('ID')['DATE']
.agg(list))

在您的解决方案中应该可以工作,但速度很慢:

df_pivot = df.groupby('ID')['DATE'].aggregate(lambda tdf: tdf.drop_duplicates().tolist())

What kind of date format is this?

如果是 native 日期时间,也称为 unix 日期时间(以纳秒为单位)。

关于python-3.x - 如何使用 Python Pandas 将列的日期聚合到每个人的日期列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67206628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com