如何将DataFrame输出中的多列数据保存到Excel文件
多列数据导出到Excel的解决方法
报错原因
你调用pd.DataFrame时仅传入了单个一维列表out作为数据源,最多只能对应1列,指定2个列名自然会触发列数不匹配的报错。
解决代码
两种常用实现方式:
方式1:构造字典传入数据源
直接把要写入的多列数据封装为字典传入DataFrame构造函数,key对应列名,value对应每列的数值列表:
import pandas as pd file1='excel1.xlsx' file2='excel2.xlsx' df1=pd.read_excel(file1) df2=pd.read_excel(file2) l=df2['col1'].tolist() for row in range(len(l)): for index,row1 in df1.iterrows(): # 注意:原代码replace无赋值不生效,需赋值回原变量 l[row] = l[row].replace(row1['emp'],row1['desc']) out=[a.replace('','_') for a in l] length=[len(o) for o in out] # 构造多列DataFrame final_df=pd.DataFrame({ 'desc': out, 'Length': length }, index=df2['col1']) # 导出为Excel文件,需提前安装openpyxl:pip install openpyxl final_df.to_excel('output.xlsx', index=True) # 如果需要导出csv格式用下方代码即可 # final_df.to_csv('output.csv', index=True)
方式2:先创建单列DataFrame再追加列
也可以先按原有逻辑创建仅含desc列的DataFrame,再直接赋值新增Length列:
final_df = pd.DataFrame(out, index=df2['col1'], columns=['desc']) # 追加Length列 final_df['Length'] = length # 导出文件 final_df.to_excel('output.xlsx')
内容的提问来源于stack exchange,提问作者user1014725
相关产品推荐
相关产品推荐

