pandas按日期筛选条目

时间:2017-12-30 07:37:09

标签: python pandas date

有一个数据框,其中包含一个名为' date'的键。前几个条目看起来像这样:

0    02.01.2013
1    03.01.2013
2    05.01.2013
3    06.01.2013
4    15.01.2013

现在我想使用pandas过滤掉所有不是2014年的行作为日期。

我查看了教程并找到以下内容:

mask = transactions['date'][9]==4
trans=transactions[mask]

但是这不起作用,因为

transactions['date'][9]

给我第9个数据输入但不是日期的第9个数字。

有人可以帮助新手吗?

1 个答案:

答案 0 :(得分:0)

df
         date
0  02.01.2013
1  03.01.2013
2  05.01.2013
3  06.01.2014
4  15.01.2014

使用datetime将列转换为pd.to_datetime,并测试dt.year属性 -

m = pd.to_datetime(df.date).dt.year != 2014
m

0     True
1     True
2     True
3    False
4    False
Name: date, dtype: bool

使用遮罩过滤df -

df = df[m]

如果datetime列是索引,则需要转换df.index -

m = pd.to_datetime(df.index).year != 2014