Регулярное выражение для извлечения даты из столбцов в кадре данных - PullRequest
0 голосов
/ 10 апреля 2020

Мне приходится иметь дело с фреймом данных, структура которого выглядит следующим образом:

print (df)
        2012-02-23~2012-02-29  2012-03-01~2012-03-08
Team A                    213                   3213
Team B                    321                   3213

Я пытаюсь изменить имя столбца, чтобы извлечь часть даты после символа ~.

df = pd.read_excel('test.xlsx')
df.columns = df.columns.str.extract(r'~(.*)')
df

Я использую код выше, однако результат, который я получаю, выглядит следующим образом:

print (df)
        (2012-02-29,)  (2012-03-08,)
Team A            213           3213
Team B            321           3213

Вопрос в том, откуда исходит коммен? и почему в каждом столбце есть (), моя цель - получить таблицу, похожую на приведенную ниже, и преобразовать тип даты в метку даты.

        2012-02-29  2012-03-08
Team A         213        3213
Team B         321        3213

1 Ответ

1 голос
/ 10 апреля 2020

Я думаю, expand=False должно помочь здесь во избежание MultiIndex, преобразованного в кортежи:

df.columns = df.columns.str.extract(r'~(.*)', expand=False)
print (df)
        2012-02-29  2012-03-08
Team A         213        3213
Team B         321        3213

Или использовать split с выбором вторых значений списков:

df.columns = df.columns.str.split('~').str[1]
print (df)
        2012-02-29  2012-03-08
Team A         213        3213
Team B         321        3213
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...