根据月份提取pandas数据帧的子集

时间:2016-01-25 07:58:14

标签: python pandas dataframe

我有这个人。 pandas dataframe(带日期时间索引的df):

datetime    Year    cal val
1/1/2000    2000    1   0.23
1/2/2000    2000    1   0.34
2/3/2000    2000    1   0.45
4/4/2000    2000    2   0.56
4/5/2000    2000    2   0.67
4/6/2000    2000    2   0.78
5/7/2000    2000    3   0.89
7/8/2000    2000    3   1
7/9/2000    2000    3   1.11

如何从列表中提取与月份对应的行:

list_months = [1, 2]

产生的数据框将是:

datetime    Year    cal val
1/1/2000    2000    1   0.23
1/2/2000    2000    1   0.34

我试过这个,但它不起作用:

[x for x in df if df.index.month in list_months]

1 个答案:

答案 0 :(得分:3)

也许您可以使用index.to_seriesisin

print df[df.index.to_series().dt.month.isin(list_months)]
            Year  cal   val
datetime                   
2000-01-01  2000    1  0.23
2000-02-01  2000    1  0.34