2016-03-11 4 views
1

Я пытаюсь указать имена всех столбцов в именах фиктивных файлов csv, которые являются целыми числами от 0 до 400. Однако следующий код не работает, я получаю сообщение об ошибке, неправильно. Какая у меня ошибка?автоматически переписывать имена столбцов в pandas dataframe

df = pd.read_csv("df.csv", sep=',', encoding='utf-8', header=0, names = [0:400])

ответ

1

Я думаю, что вы можете изменить header=None, добавьте параметр skiprows=1 и опустить параметр names, потому что read_csv добавить имена столбцов из 0 в (length of columns - 1) по умолчанию. Параметр sep=',' по умолчанию, поэтому его также можно опустить.

Пример:

import pandas as pd 
import io 

temp=u"""a,b,c 
1,5,7 
2,7,8 
3,1,9 
4,8,6 
1,5,3""" 
#after testing replace io.StringIO(temp) to filename 
df = pd.read_csv(io.StringIO(temp), header=None, skiprows=1, encoding='utf8') 
print df 
    0 1 2 
0 1 5 7 
1 2 7 8 
2 3 1 9 
3 4 8 6 
4 1 5 3 

Или изменение параметра names к names=range(400), потому что у вас есть 400 колонки:

df = pd.read_csv(io.StringIO(temp), header=0, names=range(3), encoding='utf8') 
print df 
    0 1 2 
0 1 5 7 
1 2 7 8 
2 3 1 9 
3 4 8 6 
4 1 5 3 
0

Он работает с

df = pd.read_csv("df.csv", sep=',', encoding='utf-8', header=None, skiprows = 1) 
Смежные вопросы