如何将pandas.core.series.Series类型数据写入Excel文件?
解决方法:将pandas Series写入Excel文件
没问题,我来帮你搞定这个事儿!你已经用pandas和openpyxl拿到了pandas.core.series.Series类型的目标行数据,要写入Excel其实很简单,下面给你几种实用的操作方案:
方法1:将Series转为DataFrame后写入(最常用)
因为pandas的to_excel方法对DataFrame支持更友好,我们可以先把一维的Series转换成二维的DataFrame,再写入文件。你可以根据需求选择把Series作为一行或者一列写入:
import pandas as pd # 假设这是你提取到的目标行Series target_row = pd.Series(["张三", 25, "北京"], index=["姓名", "年龄", "城市"]) # 方案A:将Series转成一行数据(适合保留原表头) df = target_row.to_frame().T # T表示转置,把列转成行 # 方案B:将Series转成一列数据 df = target_row.to_frame("提取数据") # 指定列名 # 写入Excel,用openpyxl作为引擎 df.to_excel("输出文件.xlsx", engine="openpyxl", index=False) # index=False 可以去掉自动生成的行索引,让输出更干净
方法2:追加到已有的Excel文件中
如果不想覆盖原有文件,而是要把数据追加到已有工作表的末尾,可以结合openpyxl加载现有工作簿来操作:
import pandas as pd from openpyxl import load_workbook # 你的目标行Series target_row = pd.Series(["张三", 25, "北京"], index=["姓名", "年龄", "城市"]) df = target_row.to_frame().T # 加载已存在的Excel文件 existing_book = load_workbook("已有文件.xlsx") writer = pd.ExcelWriter("已有文件.xlsx", engine="openpyxl") writer.book = existing_book # 获取当前工作表的最后一行,避免覆盖已有内容 start_row = existing_book.active.max_row # 追加写入数据,header=False 表示不重复写入表头 df.to_excel(writer, startrow=start_row, index=False, header=False) # 保存并关闭文件 writer.close()
额外注意事项
- 确保你已经安装了所需依赖:
pip install pandas openpyxl - 如果需要写入多行数据(即多个Series),可以把它们放到列表里再转成DataFrame:
pd.DataFrame([row_series1, row_series2, row_series3]) - 如果需要指定写入的工作表名称,可以在
to_excel中添加sheet_name="目标工作表"参数
内容的提问来源于stack exchange,提问作者Alex Horrillo
相关产品推荐
相关产品推荐

