有一个数据框,其中包含一个名为' 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个数字。
有人可以帮助新手吗?
答案 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