Python: выберите подмножество с логическими операциями на основе регулярного выражения - PullRequest
0 голосов
/ 25 февраля 2020

Я хочу выбрать подмножество в моем фрейме данных с двумя логическими операциями:

import pandas as pd
df = pd.read_excel (r'location')
print(df)
ns = df[(df.season == 'winter 2020/2021') & (df.booking == '^C.*')]
print(ns)

с этим файлом .csv:

season,booking
winter 2020/2021,C123
winter 2019/2020,C234
winter 2020/2021,B123
winter 2020/2021,E147

Я ожидаю этого результата:

season,booking
winter 2020/2021,C123

Консоль дала мне такой результат:

Empty DataFrame
Columns: [season, booking]
Index: []

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

1 Ответ

1 голос
/ 25 февраля 2020

Вы можете использовать startswith метод:

# method 1
df.loc[(df.season == 'winter 2020/2021') & (df.booking.str.startswith('C'))]

# method 2
df.loc[(df.season == 'winter 2020/2021') & (df.booking.str.contains('^C'))]

             season booking
0  winter 2020/2021    C123
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...