我有这个人。 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]
答案 0 :(得分:3)
也许您可以使用index.to_series
和isin
:
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