【问题标题】:pandas filter entries by datepandas 按日期过滤条目
【发布时间】:2017-12-30 07:37:08
【问题描述】:

有一个带有名为“日期”的键的数据框。前几个条目如下所示:

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 位。

有人可以帮助新手吗?

【问题讨论】:

  • 您好,您可以发布您的数据框代码吗?谢谢。

标签: python pandas date


【解决方案1】:
df
         date
0  02.01.2013
1  03.01.2013
2  05.01.2013
3  06.01.2014
4  15.01.2014

使用pd.to_datetime将列转换为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]

如果日期时间列是索引,则您需要转换 df.index -

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

【讨论】:

    猜你喜欢
    • 2019-09-21
    • 2014-05-18
    • 2016-08-21
    • 2017-09-06
    • 2022-01-23
    • 2021-11-25
    相关资源
    最近更新 更多