使用Pandas按fromUserId、toUserId多列分组聚合CSV数据的实现方法
使用Pandas实现CSV按双字段分组聚合元组列表
实现步骤
- 第一步:导入Pandas并读取CSV文件
import pandas as pd # 替换为你的实际CSV文件路径 df = pd.read_csv("your_data.csv")
- 第二步:生成待聚合的元组列
# 按要求将指定字段拼接为元组 df["agg_tuple"] = df.apply( lambda x: (x["index"], x["communicationTypeId"], x["communicationStatusId"], x["createdOn"]), axis=1 )
- 第三步:按双字段分组并聚合为列表
# 按fromUserId、toUserId分组,将同组元组聚合为列表 result_df = df.groupby(["fromUserId", "toUserId"], as_index=False)["agg_tuple"].agg(list) # 重命名列名为要求的输出表头 result_df.columns = ["fromUserId", "toUserId", "[(index,communicationTypeId,communicationStatusId,createdOn)]"]
- 第四步:导出结果(可选)
# 导出为CSV文件,不保留自动生成的索引列 result_df.to_csv("grouped_result.csv", index=False)
补充说明
如果不需要数值末尾的.0后缀,可以在拼接元组时对字段做整数转换即可,示例:
lambda x: (int(x["index"]), int(x["communicationTypeId"]), int(x["communicationStatusId"]), int(x["createdOn"]))
内容的提问来源于stack exchange,提问作者Pratiti Bera
相关产品推荐
相关产品推荐

