Найти диапазон года в пандах, особенно в дефисных форматах? - PullRequest
0 голосов
/ 14 февраля 2019

Учитывая приведенные ниже данные, я хочу напечатать список команд, которые дебютировали в своем матче в период с 1934 по 1948 год. Поскольку столбец «Дебют» является объектом, я не могу получить данные столбца в целочисленной форме.

Team    Debut
0       Real Madrid 1929
1       Barcelona   1929
2       Atletico Madrid 1929
3       Valencia    1931-32
4       Athletic Bilbao 1929
5       Sevilla 1934-35
6       Espanyol    1929
7       Real Sociedad   1929
8       Zaragoza    1939-40
9       Real Betis  1932-33
10      Deportivo La Coruna 1941-42
11      Celta Vigo  1939-40
12      Valladolid  1948-49

Может кто-нибудь помочь подсказать, как этого добиться?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Вы можете использовать str.extract, чтобы извлечь первую часть даты и проверить, находится ли она в требуемом диапазоне

mask = df['Debut'].str.extract('(\d+)')[0].astype(int).between(1934,1948)
df[mask]

    Team    Debut
5   5   Sevilla 1934-35
8   8   Zaragoza 1939-40
10  10  Deportivo La Coruna 1941-42
11  11  Celta Vigo 1939-40
12  12  Valladolid 1948-49
0 голосов
/ 14 февраля 2019

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

year = pd.to_numeric(df.Debut.str.split('-').str[0])
teams = df.Team[year.between(1934, 1948)]
print(teams)

Выход

5                 Sevilla
8                Zaragoza
10    Deportivo La Coruna
11             Celta Vigo
12             Valladolid
Name: Team, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...