You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas Groupby分组后如何将列表数据拆分为多列合并展示?

实现人员多地址记录合并行的Pandas解决方案

你原有代码的核心错误是Step2中用str.split()拆分拼接字符串时,地址、城市字段包含空格,会把单个字段拆分为多个列表元素,导致后续字段错位,同时groupby未携带First Name字段,会丢失该维度信息。
以下是可直接运行得到预期结果的完整代码:

import pandas as pd
import numpy as np

# 读取剪贴板数据
df = pd.read_clipboard()

# 给同一用户的多条记录添加序号(从1开始计数)
df["idx"] = df.groupby(["AccountID", "Last Name", "First Name"]).cumcount() + 1

# 转换为宽表,按序号展开对应字段
df_wide = df.set_index(["AccountID", "Last Name", "First Name", "idx"]).unstack()

# 整理列名,添加序号后缀
df_wide.columns = [f"{col[0]}_{col[1]}" for col in df_wide.columns]

# 重置索引得到基础结果
df_res = df_wide.reset_index()

# 调整列顺序匹配你需要的输出格式
expected_cols = ["AccountID", "Last Name", "First Name"]
for i in range(1, df["idx"].max()+1):
    expected_cols.extend([f"Contract_{i}", f"Address_{i}", f"City_{i}", f"State_{i}"])
df_res = df_res[expected_cols]

# 若需要空值显示为空字符串而非NaN,可开启下一行
# df_res = df_res.fillna('')

print(df_res)

内容的提问来源于stack exchange,提问作者Joe Stuart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:15:03