当我尝试使用数据帧 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=' ')
#或任何转义字符。
希望对大家有帮助。 谢谢
您的
groupby
调用会生成一个没有 doublequote
参数的系列,请在调用 to_frame()
之前转换为调用 to_csv
的 DataFrame
这个:
df.groupby(['Transactions'])['Items'].apply(','.join)
正在对您的 df 进行分组,但是您选择了一列并调用
apply
这将返回 Series
因此您的错误
感谢所有评论者的头脑风暴。
使用以下命令
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=' ')
# 或任何转义字符。
希望对大家有帮助。谢谢
我在此命令上收到此“TypeError:NDFrame.to_csv() 获得意外的关键字参数 'line_terminator'”:
df0.to_csv(file_path, line_terminator='\n')
:“在1.5.0版本中更改:以前是line_terminator
,更改为 与 read_csv 和标准库‘csv’模块保持一致。”line_terminator