如何使用Python Pandas在CSV文件顶部插入空行?
在CSV文件顶部插入空行并设置表头
正确实现步骤
- 读取CSV时不指定表头,将所有内容当作数据行加载
- 创建一行全为空值的DataFrame作为顶部空行
- 合并空行与原数据
- 为合并后的DataFrame设置自定义表头
修正后的完整代码
import pandas as pd # 1. 读取CSV,不指定表头,原表头会作为第一行数据 ordersUnleashed = pd.read_csv("ClientOrders.csv", header=None) # 2. 创建空行(列数和原数据一致) empty_row = pd.DataFrame([[''] * len(ordersUnleashed.columns)], columns=ordersUnleashed.columns) # 3. 合并空行和原数据,空行放在顶部 ordersUnleashed = pd.concat([empty_row, ordersUnleashed], ignore_index=True) # 4. 设置自定义表头 custom_headers = [ "*Order Number", "*Customer Code", "Tax Code", "Tax Rate", "Exchange Rate", "Customer Reference", "Comments", "Order Date (DD/MM/YYYY)", "Quote Expiry Date (DD/MM/YYYY)", "Required Date (DD/MM/YYYY)", "Warehouse Code", "Delivery Contact", "Delivery Name", "Delivery Street Address", "Delivery Street Address 2", "Delivery Suburb", "Delivery City", "Delivery Region", "Delivery Post Code", "Delivery Country", "Delivery Instruction", "Discount (%)", "Sales Order Group", "Sales Person Email", "*Line Number", " *Product Code", "*Order Quantity", "Line Discount (%)", "Unit Price", "Line Comments" ] ordersUnleashed.columns = custom_headers # 查看结果 print(ordersUnleashed.head())
之前尝试的问题说明
- 用
ordersUnleashed.iloc[0] = [''] * 30会直接覆盖原第一行数据,并非插入空行 - 手动创建
header_list再读入的方式,会把原数据第一行替换成自定义表头,导致原数据丢失 - 使用
concat是插入行的正确方式,既能保留所有原数据,又能在顶部添加空行
内容的提问来源于stack exchange,提问作者Greyville
相关产品推荐
相关产品推荐

