Добавьте префикс к столбцам в срезе кадра данных - PullRequest
3 голосов
/ 25 апреля 2019

У меня довольно большой DataFrame (~ 500 столбцов и> 5000 строк).Я хочу добавить префикс к первым 15 столбцам.Я нашел функцию с именем add_prefix(), которая может установить префикс для всех столбцов одновременно.Я попробовал следующее:

df[df.columns[range(0,15)]] = df[df.columns[range(0,15)]].add_prefix('f_')

с префиксом 'f_', который я хотел бы добавить.Тем не менее, вывод не меняется.

>>>
       mean        std         var  ...         525       526  label
0 -2.546261  17.827072  317.804485  ...   -0.314016 -0.310878    0.0
1 -2.338710  17.915556  320.967136  ...   -0.345603 -0.343088    0.0
2 -2.095051  17.539407  307.630788  ...   -0.323596 -0.324990    0.0
3 -1.685209  18.257797  333.347150  ...   -0.310060 -0.320796    0.0
4 -1.846169  17.240523  297.235618  ...   -0.318660 -0.322732    0.0

Что бы я хотел получить:

>>>
     f_mean      f_std       f_var  ...         525       526  label
0 -2.546261  17.827072  317.804485  ...   -0.314016 -0.310878    0.0
1 -2.338710  17.915556  320.967136  ...   -0.345603 -0.343088    0.0
2 -2.095051  17.539407  307.630788  ...   -0.323596 -0.324990    0.0
3 -1.685209  18.257797  333.347150  ...   -0.310060 -0.320796    0.0
4 -1.846169  17.240523  297.235618  ...   -0.318660 -0.322732    0.0

Что я делаю не так?

1 Ответ

4 голосов
/ 25 апреля 2019

Вы не можете напрямую назначить префикс, как вы это делаете в настоящее время, учитывая, что индексы не поддерживают изменяемые операции. Таким образом, вам придется переназначить все столбцы снова. Вот один из способов сделать это с помощью понимания списка:

df.columns = ['f_' + i if ix < 15 else i for ix, i in enumerate(df.columns)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...