2014-09-29 6 views
9

В моем файле csv нет имени столбца для первого столбца, и я хочу его переименовать. Обычно я бы делал data.rename(columns={'oldname':'newname'}, inplace=True), но имя не было в файле csv, просто ''.Переименовать неназванный столбец pandas dataframe

+2

Как это было создано csv? Если он был экспортирован из панд, то это иногда указывает, что первым столбцом был индекс. В этом случае вы можете указать pandas this при чтении в 'pd.read_csv ('file.csv', index_col = [0])' – EdChum

ответ

0

У этого есть имя, имя только '' (пустая строка).

In [2]: df = pd.DataFrame({'': [1, 2]}) 

In [3]: df 
Out[3]: 

0 1 
1 2 

In [4]: df.rename(columns={'': 'A'}) 
Out[4]: 
    A 
0 1 
1 2 
+2

Неверно, это не работает – jaycode

+0

Вам нужно inplace = True, чтобы напрямую изменить df. df.rename (columns = {'': 'A'}, inplace = True) – user2602740

14

При загрузке CSV, используйте опцию 'index_col' как

pd.read_csv('test.csv', index_col=0) 

index_col: междунар или последовательности или значение False, по умолчанию None Column для использования в качестве в заголовки строк на DataFrame , Если задана последовательность, используется MultiIndex . Если у вас есть искаженный файл с разделителями в конце каждую строку, вы можете рассмотреть index_col = False, чтобы заставить панда не использовать первый столбец в качестве индекса (имена строк)

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.parsers.read_csv.html

2

вы можете просмотреть текущий dataframe с помощью data.head()

если что возвращает «Без имени: 0» в качестве заголовка столбца, вы можете переименовать его следующим образом:

data.rename (columns = {'Без имени: 0': 'новое имя столбца'}, inplace = True)

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