如何使用Python的pandas将数据数组按行而非列写入Excel
如何用Pandas将数据按行写入Excel文件?
嘿,这个问题我太熟了!默认情况下Pandas的DataFrame是按列组织数据的,要改成按行输出其实很简单,核心就是调整DataFrame的构造方式,再配合ExcelWriter完成写入就行。我给你一步步讲清楚:
核心思路
Pandas默认会把一维数组的每个元素当作一列,所以要实现按行输出,你需要把数据包装成行的集合——也就是把原数组放到一个列表里(变成二维结构),这样每个子列表就对应Excel里的一行。
单一行数据的例子
假设你有一个一维数组,想把它作为Excel里的一行写入:
import pandas as pd # 你的原始数据数组 data = ["姓名", "年龄", "城市", "职业"] # 关键操作:把数据包装成列表的列表,让Pandas识别为一行 df = pd.DataFrame([data]) # 使用ExcelWriter写入文件,按需去掉默认的行索引和列标题 with pd.ExcelWriter("single_row_output.xlsx") as writer: df.to_excel(writer, index=False, header=False)
解释下参数:
index=False:去掉Excel里默认的行索引(比如0、1、2...)header=False:去掉默认的列标题(比如0、1、2...),如果需要自定义表头,可以把这个参数改成你想要的列表,比如header=["字段1", "字段2"]
多行数据的例子
如果你有多组数据,每组对应一行,直接把所有行数据放到一个二维列表里就行:
import pandas as pd # 多行数据,每个子列表对应Excel里的一行 rows_data = [ ["张三", 28, "北京", "工程师"], ["李四", 32, "上海", "设计师"], ["王五", 25, "广州", "产品经理"] ] # 直接构造DataFrame,自动识别每行数据 df = pd.DataFrame(rows_data) # 写入时可以指定自定义表头 with pd.ExcelWriter("multi_rows_output.xlsx") as writer: df.to_excel(writer, index=False, header=["姓名", "年龄", "城市", "职业"])
处理NumPy数组的情况
如果你的数据是NumPy数组,先转成列表再处理就行:
import numpy as np import pandas as pd # 原始NumPy数组 np_data = np.array([100, 200, 300, 400]) # 转成列表并包装成行结构 df = pd.DataFrame([np_data.tolist()]) with pd.ExcelWriter("numpy_to_excel.xlsx") as writer: df.to_excel(writer, index=False)
这样写出来的Excel数据就会完全按你想要的行排列啦!
内容的提问来源于stack exchange,提问作者user2597183
相关产品推荐
相关产品推荐

