2015-06-10 3 views
0

Я читаю и записываю файл csv с помощью pandas.Запись файла csv по столбцу в pandas throws error

Я читаю столбец CSV-файл с помощью колонки и запись его в отдельный файл CSV с помощью колонки чтения колонки работает нормально, но при записи файла CSV это thorws ошибке

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' 

Но есть колонка аргумент actully здесь pandas library

Как мог я сделать эту программу работы (сочинительство колонки по столбцам)

+0

Что ваша панды версия? –

+0

0.13.1 @AlexanderHuszagh – Mounarajan

+0

У вас есть проблема. Я отправлю ответ. –

ответ

2

Изменения в v0.16.0

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

Cols как ключевое слово для CSV и Excel писателей был заменен с колоннами.

Попробуйте вместо этого cols или обновите панды.

Вместо:

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

Использование:

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

Edit: В любом случае вы должны обновить. С уважением. Если ошибка является аргументом ключевого слова, и вы отказываетесь от вашего метода от документации для самой последней версии на программном обеспечении, написанном более 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() 
+0

если я использую cols, также я получаю ту же ошибку – Mounarajan

+0

Можете ли вы обновить свою версию pandas? Серьезно: 0.13.1 был веками тому назад. Вы используете документацию для новых функций на программном обеспечении, написанном 1,5 года назад. >>> a = pd.DataFrame (index = range (5), columns = range (5)) >>> a.to_csv (columns = [1,5]) ', 1,5 \ n0, , \ n1 ,, \ n2 ,, \ n3 ,, \ n4 ,, \ n ' –

+0

, так как я мог его обновить? – Mounarajan

Смежные вопросы