如何基于user_id将time_stamp列值合并为列表(Pandas DataFrame)
解决方案
直接用pandas的groupby+聚合方法就能高效实现,不需要遍历行或写for循环,代码如下:
import pandas as pd # 基于你的target DataFrame生成目标df df = target.groupby('user_id')['time_stamp'].agg(list).reset_index() # 重命名列名以符合需求 df.columns = ['user_id', 'times']
代码说明
groupby('user_id'):按user_id对数据分组,把同一用户的所有记录归为一组agg(list):将每个分组里的time_stamp字段聚合为一个列表reset_index():把作为索引的user_id转换为普通列- 最后重命名列,让第二列名称为
times,和需求一致
执行后得到的df结构如下:
| user_id | times |
|---|---|
| 1 | ['2014-04-22 03:53:30'] |
| 2 | ['2013-11-15 03:45:04', '2013-11-29 03:45:04', '2013-12-09 03:45:04'] |
| 3 | ['2013-12-25 03:45:04'] |
内容的提问来源于stack exchange,提问作者Fernando Araiza
相关产品推荐
相关产品推荐

