Pandas:to_csv() 得到了意外的关键字参数

问题描述 投票:0回答:4

当我尝试使用数据帧 to_csv 函数中的某些参数时,它会抛出 TypeError,例如`TypeError:to_csv()获得意外的关键字参数'双引号'

df.to_csv('transactions.x', header=False, doublequote=False)
或者
df.to_csv('transactions.x', doublequote=False)

我的pandas版本是0.19.2(用

print(pd.__version__)
检查) 我正在使用
Python 3.5

以下官方文档基于0.19.2。虽然我遇到了类型错误,但据说这些参数可以用作可选参数。 http://pandas.pydata.org/pandas-docs/stable/ generated/pandas.DataFrame.to_csv.html

你们对此有什么想法吗?

谢谢你。

解决方案

感谢所有评论者的头脑风暴。

使用以下命令

df = df.groupby(['Transactions'])['Items'].apply(','.join)
后,数据帧变成系列。

为了将系列转换为数据帧,应使用此命令

df = df.groupby(['Transactions'])['Items'].apply(','.join).to_frame()

最后,要通过避免转义字符将其导出为非引号样式的 CSV,您需要以以下命令结束

df.to_csv('transactions.x', header=False, quoting=csv.QUOTE_NONE, escapechar=' ')
#或任何转义字符。

希望对大家有帮助。 谢谢

python pandas export-to-csv
4个回答
3
投票

这有帮助吗:

pd.to_csv('test.csv', quoting=csv.QUOTE_NONE)

根据您的评论,请阅读系列中的docs

您可以在保存之前使用

to_frame
来解决您的问题。


0
投票

您的

groupby
调用会生成一个没有
doublequote
参数的系列,请在调用 to_frame()
 之前转换为调用 
to_csv

的 DataFrame

这个:

df.groupby(['Transactions'])['Items'].apply(','.join) 

正在对您的 df 进行分组,但是您选择了一列并调用

apply
这将返回
Series
因此您的错误


0
投票

感谢所有评论者的头脑风暴。

使用以下命令

df = df.groupby(['Transactions'])['Items'].apply(','.join)
后,数据帧变成系列。

为了将系列转换为数据帧,应使用此命令

df = df.groupby(['Transactions'])['Items'].apply(','.join).to_frame()

最后,要通过避免转义字符将其导出为非引号样式的 CSV,您需要以以下命令结束

df.to_csv('transactions.x', header=False, quoting=csv.QUOTE_NONE, escapechar=' ')
# 或任何转义字符。

希望对大家有帮助。谢谢


0
投票

我在此命令上收到此“TypeError:NDFrame.to_csv() 获得意外的关键字参数 'line_terminator'”:

df0.to_csv(file_path, line_terminator='\n')

原因就在于熊猫的无穷智慧:

line_terminator
:“在1.5.0版本中更改:以前是
line_terminator
,更改为 与 read_csv 和标准库‘csv’模块保持一致。”

© www.soinside.com 2019 - 2024. All rights reserved.