0

我正在使用 pandas 读写一个 csv 文件。

我正在逐列读取 csv 文件并将其逐列写入单独的 csv 文件,读取工作正常,但是在写入 csv 文件时会出错

import pandas
f1 = open('artist_links','a')
data_df = pandas.read_csv('upc1.upcs_result.csv')
#data_wr = pandas.to_csv('test.csv')

df = data_df['one']
dd = data_df['two']
header = ["df", "dd"]
df.to_csv("test.csv",columns = header)

输出:

Traceback (most recent call last):
  File "merge.py", line 9, in <module>
    df.to_csv("test.csv",columns = header)
TypeError: to_csv() got an unexpected keyword argument 'columns'

但是实际上这里有一个列参数pandas library

我怎样才能使这个程序工作(逐列编写)

4

1 回答 1

2

v0.16.0 的变化

http://pandas.pydata.org/pandas-docs/dev/whatsnew.html

cols 作为 csv 和 Excel 编写器的关键字已替换为列。

尝试 cols 或升级 pandas。

代替:

df.to_csv("test.csv", columns=header)

利用:

df.to_csv("test.csv", cols=header)

编辑:无论哪种方式,您都应该升级。真挚地。如果错误是关键字参数,并且您的方法基于 1.5 年前编写的软件的最新版本的文档,并且从那时起进行了重大更改,则应该升级。

EDIT2:如果您不顾一切地让自己的生活变得困难并继续使用过时的功能并尝试使用新功能,您可以做一些变通方法。不建议这样做,因为有些东西可能会更加微妙,并在您最不期望的时候抛出异常。

你可以……做……

lst = []
for column in header:
    s = df[column]
    # export all to list and nested
    lst.append(s.tolist())
# zip resulting lists to tuples
zipped = zip(*lst)
# export them as a CSV.
print '\n'.join([','.join(i) for i in zipped])

EDIT3:简单得多,但你也可以这样做:

df2 = df[header]   # return copy
df2.to_csv()
于 2015-06-10T07:02:15.413 回答