将含列表值的字典转DataFrame并导出Excel,如何拆分列表为多行?
解决字典转DataFrame后列表值拆分多行的问题
你遇到的核心问题是字典中部分字段为列表类型,直接转DataFrame时会将整个列表作为单个单元格内容,用explode()方法就能拆分这些列表为多行,同时保留其他字段的对应值。
解决方案代码
1. 指定列拆分(已知哪些列是列表)
import pandas as pd # 字典转DataFrame listDataFrame = pd.DataFrame.from_dict(Data) # 拆分指定的列表列,多列可传入列表如explode(["col1", "col2"]) listDataFrame = listDataFrame.explode("需要拆分的列名") # 导出Excel,注意布尔值用小写True/False,index=False可去掉索引列 listDataFrame.to_excel(fullpath, sheet_name="Sheet1", index=False)
2. 自动识别列表列并拆分(不确定哪些列是列表)
如果字典中列表列不固定,可以先自动检测:
import pandas as pd listDataFrame = pd.DataFrame.from_dict(Data) # 筛选出值为列表类型的列 list_columns = [col for col in listDataFrame.columns if isinstance(listDataFrame[col].iloc[0], list)] # 批量拆分这些列 listDataFrame = listDataFrame.explode(list_columns) # 导出Excel listDataFrame.to_excel(fullpath, sheet_name="Sheet1", index=False)
注意事项
- 你原代码中的
index=TRUE会报错,Python布尔值需小写,用index=True或index=False(推荐后者,避免导出不必要的索引列)。 - 如果字典中存在嵌套更深的列表结构,可能需要额外处理,但常规的一维列表用
explode()即可解决。
内容的提问来源于stack exchange,提问作者muraliprasanthd
相关产品推荐
相关产品推荐

