我有一个数据框,其中的日期用作索引,我想提取给定月份(例如一月)的所有行。例如给定
Date Col1
2000-01-01 1
...
2000-12-31 12
2001-01-01 1
...
2001-12-31 12
2002-01-01 1
...
2002-12-31 12
然后就可以了
f = df.index.map(lambda x: x.month==1)
new_df = df[f]
是否有更简单的方法来获取 new_df?
我本来希望能够做类似 df.loc[lambda x: x.month==1]
的事情但这不起作用,因为 x
实际上是df
(这是反直觉的,因为 .loc
期望所有其他形式的 .loc
调用中的实际标签,所以我会认为 x
将是索引的每个标签)。或df.filter(lambda x: x.month==1)
但是filter
不接受回调。
最佳答案
您可以使用pandas.DatetimeIndex.month
with loc
返回条件匹配的索引
df.loc[df.index.month==1]
#df[df.index.month==1]
Col1
Date
2000-01-01 1.0
2001-01-01 1.0
2002-01-01 1.0
关于python - 按索引上的函数过滤 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57423453/