имя колонки переименовывается в python pandas - PullRequest
2 голосов
/ 22 марта 2019

У меня есть несколько файлов Excel с одинаковыми именами столбцов, кроме одного.

Один файл называет его EndOfMarchStatus, другой файл называет его EndofAprilStatus и т. Д.

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

некоторая форма команды переименования с подстановочными знаками или начальными символами, вероятно, будет работать.

вещей, которые я пробовал, но они не работали:

sheet1df.columns.str.replace('Endof.*', 'EndOfMonthStatus')

sheet1df.rename(columns={sheet1df.filter(regex='*.Status').columns[0]: 'EndOfMonthStatus'}, inplace=True)

sheet1df.rename(columns={'^Status':'EndOfMonthStatus'}, inplace=True)

sheet1df.rename(columns=lambda x: x.replace('Endof%', 'EndOfMonthStatus'), inplace=True)  

Ответы [ 2 ]

1 голос
/ 22 марта 2019

Вы можете использовать str.replace:

df.columns = df.columns.str.replace('(?<=EndOf)(\w+)(?=Status)', 'Month')
0 голосов
/ 22 марта 2019

Вы можете сделать это так:

df = pd.DataFrame({"A":[1,2,3], "EndOfApril":[2,3,4]})
df.rename(columns = { i: "EndOfMonth" for i in  df.columns if i.startswith("EndOf") } )

выходы:

    A   EndOfMonth
0   1   2
1   2   3
2   3   4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...