TypeError: to_csv() 得到了一个意外的关键字参数“startrow”

Posted

技术标签:

【中文标题】TypeError: to_csv() 得到了一个意外的关键字参数“startrow”【英文标题】:TypeError: to_csv() got an unexpected keyword argument 'startrow' 【发布时间】:2021-12-08 00:46:04 【问题描述】:

我正在尝试从.csv 文件导入数据,然后将其导出到另一个.csv 文件。在我要导出到的文件中,我要写入的同一列中已经存在数据。所以我使用startrow= 方法开始从适当的行导出我的数据。但是当我运行代码时,它引发了错误

这是代码

将熊猫导入为 pd

def mokacsv(file_name):
    importing = pd.read_csv(file_name)
    column_netsales = importing['Net Sales']
    sum_of_netsales = (column_netsales)
    sum_of_netsales.to_csv('example1.csv', index=False, header=True, startrow=30)



print(mokacsv(r"example2.csv"))

非常感谢任何帮助,P.S这是关于我第二周编码python3的,我之前没有经验。

【问题讨论】:

您是否要在example1.csv 的末尾添加数据?为此,您应该使用mode="a",这意味着“附加到文件”。 是的,我是。你如何为我的代码申请mode="a"?我不熟悉它。谢谢。 你会在to_csv函数调用中使用它:sum_of_netsales.to_csv('example1.csv', index=False, header=True, mode="a") 我试过了,效果很好,非常感谢。但是,如果我可以添加一个后续问题,有没有办法可以将数据添加到某些行(例如第 30 行)?就像我原本打算的那样?以及example1.csv的某个列? 我认为您应该edit your question 要求跟进。如果我理解的话,它是:“如何在 CSV 文件的特定行中添加数据?”您应该包含一个 minimal reproducible example 以及一些示例输入和您的预期输出。我不确定您所说的“在某个列”是什么意思,这就是为什么该示例将有助于澄清这一点。 【参考方案1】:

尝试使用concat 函数

import pandas as pd

one = pd.DataFrame(
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5'],
   'Marks_scored':[98,90,87,69,78],
   index=[1,2,3,4,5])

two = pd.DataFrame(
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5'],
   'Marks_scored':[89,80,79,97,88],
   index=[1,2,3,4,5])
print pd.concat([one,two]) 

输出:

更多信息请访问Python Pandas - Concatenation 和 Python + Pandas: Add value to specific row in csv-file

【讨论】:

以上是关于TypeError: to_csv() 得到了一个意外的关键字参数“startrow”的主要内容,如果未能解决你的问题,请参考以下文章

df.to_csv 结构化输出

Pandas DataFrame.to_csv 引发 IOError:没有这样的文件或目录

Python - to_csv

TypeError: line() 得到了一个意外的关键字参数“标记”

TypeError: __init__() 得到了一个意外的关键字参数“评分”

TypeError:attrib() 得到了一个意外的关键字参数“convert”