Python: как переименовать столбцы со строкой и номером - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть такой фрейм данных

df:
   X  Y  Z
0  1  0  0
1  0  1  0
2  0  0  1

Если я хочу переименовать столбцы со строкой и числом в диапазоне (0, 3), как это

df:
  new_0  new_1  new_2
0     1      0      0
1     0      1      0
2     0      0      1

Чтоя могу сделать?

На самом деле, в моем случае у меня есть около 73 столбцов, которые должны быть переименованы, поэтому я думаю, что я не могу просто переименовать каждый столбец один за другим.

Спасибо ~

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Вы можете использовать функциональность Pandas / NumPy:

df.columns = np.arange(df.shape[1])
df = df.add_prefix('new_')

Или вы можете использовать понимание списка со строками f (Python 3.6; PEP498 ):

df.columns = [f'new_{i}' for i in range(df.shape[1])]
0 голосов
/ 15 декабря 2018

Предположим, у вас есть функция rename() для сопоставления вашего старого столбца с новым столбцом, тогда это будет так просто:

df.columns = [rename(c) for c in df.columns]

Я не знаю, имеете ли вы это в виду, но если выпросто хотите перенумеровать ваши столбцы, вот что нужно сделать:

df.columns = ["new_%d" % i for i,_ in enumerate(df.columns)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...