【发布时间】:2021-04-22 04:06:51
【问题描述】:
我有以下数据,每行每个 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]
这是什么日期格式?我似乎找不到合适的函数将其转换回典型的日期格式。
【问题讨论】:
标签: python-3.x pandas datetime aggregate