如何使用Python将表格单列拆分为多行 提取嵌套列表的id字段
实现方法(基于Pandas)
我们可以用Pandas的apply+explode组合实现需求,步骤如下:
- 第一步:导入依赖库
import pandas as pd # 如果你的part2列是字符串格式的列表(比如从csv/excel读入后自动识别为字符串),需要额外导入ast import ast
- 第二步:读入原始数据表
这里用你给出的示例数据构造测试表,你可以换成自己的读表代码(比如pd.read_excel、pd.read_csv等)
# 构造示例原表,可替换为自己的读表逻辑 df = pd.DataFrame({ 'part 1': [12345, 690], 'part 2': [ [{'name': 'xxx', 'id': 234564}, {'name': 'yyyy', 'id': 1357923}], [{'name': 'fff', 'id': 19204023412}] ] }) # 如果part2列是字符串格式的列表,先加这行转换为Python原生列表对象 # df['part 2'] = df['part 2'].apply(ast.literal_eval)
- 第三步:提取id并展开行
# 提取每个列表元素中的id值 df['part 2'] = df['part 2'].apply(lambda x: [item['id'] for item in x]) # 按part2列展开为多行 df = df.explode('part 2', ignore_index=True)
注:如果Pandas版本较低不支持
ignore_index参数,可以在explode之后加一行df = df.reset_index(drop=True)重置索引。
运行后得到的df就是你需要的结果,可直接用df.to_excel('结果.xlsx', index=False)或者df.to_csv('结果.csv', index=False)导出保存。
内容的提问来源于stack exchange,提问作者Data_Science_110
相关产品推荐
相关产品推荐

