查找大熊猫的年份范围,尤其是连字符格式?

时间:2019-02-14 15:57:11

标签: regex pandas

鉴于下面的数据,我想打印1934年到1948年之间首次亮相比赛的球队名单。由于Debut列是object,所以我无法以整数形式获取列数据。

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 :(得分:2)

您可以使用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

答案 1 :(得分:1)

如果仅计算范围的第一年,则可以在转换为数值后使用between

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