python-3.x - 如何使用 Python Pandas 将列的日期聚合到每个人的日期列表中?
问题描述
我有以下数据,每行每个 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]
这是什么日期格式?我似乎找不到将其转换回典型日期格式的正确函数。
解决方案
很多方法... agg 首选,因为 apply 可能非常慢
df.groupby('ID')['DATE'].agg(list)
Or
df.groupby('ID')['DATE'].apply(lambda x: x.to_list())
推荐阅读
- sql - Oracle SQL Left Join 与 FROM 中的多个表
- azure-api-management - 在 vnet 部署的 API 管理实例中导入私有 API 应用(Azure 应用服务)作为 API
- blazor - 缺少 Blazor WebAssembly 3.1 目标框架
- react-native - 如何在 React Native 中处理 Seprate 文件中的导航
- firebase-cloud-messaging - 用户上线时的 Mqtt 消息传递
- android - 如何在android studio中使用ffmpeg添加像tic tok这样的水印
- javascript - 函数的空间复杂度
- javascript - 如何使用 api 在 reactjs 中添加搜索功能
- reactjs - 在 Reactjs 中将表单数据提交到我的 API 时出现“无法读取未定义的属性‘值’”错误
- c - 下面这段代码的时间复杂度和空间复杂度