根据日期过滤数据框

时间:2021-05-05 13:26:58

标签: python-3.x pandas dataframe datetime

我有一个如下所示的数据框:

    |  Date    |  Value |
    +----------+--------+
    |2009-01-01|  34    |
    |2009-01-03|  45    |
    |2009-02-03|  56    |
    |2009-02-18|  57    |
    |2009-03-17|  59    |
    |2009-03-26|  60    |
    |2010-01-01|  23    |
    |2010-01-17|  34    |
    |2010-02-14|  23    |
    |2010-02-18|  42    |
    |2010-03-21|  12    |
    |2010-03-29|  11    |
    +----------+--------+

我想过滤数据框以仅包含一月而不是其他月份的值,如下所示。

    |  Date    |  Value |
    +----------+--------+
    |2009-01-01|  34    |
    |2009-01-03|  45    |
    |2010-01-01|  23    |
    |2010-01-17|  34    |
    +----------+--------+

那么,如何使用日期列过滤此类数据框?谢谢,

2 个答案:

答案 0 :(得分:1)

您可以使用

将日期转换为日期时间类型
df['Date'] = pd.to_datetime(df['Date'])

然后使用dt.month

df[df['Date'].dt.month==1]

答案 1 :(得分:1)

如果模式是固定的,一种方法是检查第 5 个和第 6 个字符:

df[df.Date.str[5:7] == "01"]

得到

         Date  Value
1  2009-01-01   34.0
2  2009-01-03   45.0
7  2010-01-01   23.0
8  2010-01-17   34.0