You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas调用to_csv()报错不识别startrow参数如何解决

报错根因

pandas 的 to_csv() 方法本身没有 startrow 入参,该参数仅适用于Excel写入工具 pd.ExcelWriter,传入不存在的参数就会触发类型错误。

需求实现方案

你的核心需求是不覆盖目标文件example1.csv的前29行已有数据,从第30行开始写入净销售额数据,按两种常见使用场景选择对应方案即可:

  • 场景1:需保留目标文件前29行的全部原有内容,仅从第30行开始追加新数据
import pandas as pd

def mokacsv(file_name):
    # 读取源文件的净销售额列,转DataFrame格式方便后续拼接
    source_df = pd.read_csv(file_name)
    new_data = source_df[['Net Sales']]
    
    # 读取目标文件现有前29行内容(行索引从0开始,nrows=29对应前29行)
    old_data = pd.read_csv('example1.csv', nrows=29)
    
    # 拼接原有内容和新内容,新内容自动排在第30行及之后
    final_data = pd.concat([old_data, new_data], ignore_index=True)
    
    # 写入完整数据到目标文件,覆盖原有文件
    final_data.to_csv('example1.csv', index=False, header=True)

mokacsv(r"example2.csv")
  • 场景2:仅需空出前29行,不需要保留原有内容,第30行开始写新数据
import pandas as pd

def mokacsv(file_name):
    source_df = pd.read_csv(file_name)
    new_data = source_df[['Net Sales']]
    
    # 先写入29行空内容占位
    with open('example1.csv', 'w', encoding='utf-8') as f:
        f.write('\n' * 29)
    
    # 追加模式写入新数据,mode='a'表示追加不会覆盖原有内容
    new_data.to_csv('example1.csv', mode='a', index=False, header=True)

mokacsv(r"example2.csv")
补充说明

你原代码中sum_of_netsales = (column_netsales)没有执行求和逻辑,如果你的需求是计算净销售额总和后再写入,可以将new_data的赋值逻辑替换为:

sum_value = source_df['Net Sales'].sum()
new_data = pd.DataFrame({'Net Sales 总和': [sum_value]})

另外你原代码末尾的print(mokacsv(...))不会输出内容,因为函数没有return返回值,直接调用函数即可。

内容的提问来源于stack exchange,提问作者Mirkyly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:24:03