Использовали pandas
в течение нескольких лет, но никогда не видели такого поведения. Я использую версию 0.18.1
. У меня есть .csv
файл со следующим содержимым:
id;foo;bar
100001;11-22;spam
100002;22-33;spamspam
Я читаю это в DataFrame:
pd.read_csv(csv_path, sep=';', index_col=False, encoding='UTF-8')
Вот что я получаю:
id foo bar
0 100001 11-22 spam
1 100002 22-33 spamspam
Теперь я бы хотел переименовать поле id
в new_id
:
df.rename(index=str, columns={'id': 'new_id'}, inplace=True)
Однако он оставляет столбец id
с тем же именем.
Столбец id
присутствует в df.columns
:
df.columns
Index([u'id', u'foo', u'bar'], dtype='object')
И его индекс:
df.index
Index([u'0', u'1'], dtype='object')
Попытка переименовать столбцы foo
или bar
работает должным образом:
df.rename(index=str, columns={'foo': 'new_foo'}, inplace=True)
id new_foo bar
0 100001 11-22 spam
1 100002 22-33 spamspam
Я подумал, что это может быть что-то особенное в ключевом слове id
, однако такое же поведение можно наблюдать, переименовав столбец id
во что-то другое. Как переименовать первый столбец во фрейме данных?