如何使用Pandas分组排序后按冒号、逗号拼接字段生成目标DataFrame
实现代码
直接使用Pandas链式调用即可完成需求,写法简洁清晰,符合Pythonic风格:
import pandas as pd # 原始DataFrame构造示例,可替换为你自己的数据集 df = pd.DataFrame({ "C0": [0, 0, 1], "C1": ["jjj", "aaa", "bbb"], "C2": [3, 2, 7] }) # 核心处理逻辑 result = ( df.sort_values(by=["C0", "C1"]) .assign(temp = lambda d: d["C1"] + ":" + d["C2"].astype(str)) .groupby("C0")["temp"] .agg(",".join) .reset_index(name="C1") )
逻辑说明
- 先对全表按
C0、C1升序排序,确保同组内C1的顺序符合要求 - 通过
assign生成临时列,将每行的C1与转成字符串格式的C2用冒号拼接 - 按C0字段分组,把同组的临时列内容用逗号拼接为完整字符串
- 最后重置索引,将聚合后的列重命名为目标字段名
C1,即可得到符合要求的结果
内容的提问来源于stack exchange,提问作者Luis Alejandro Vargas Ramos
相关产品推荐
相关产品推荐

