我有一个如下所示的数据框:
| 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 |
+----------+--------+
那么,如何使用日期列过滤此类数据框?谢谢,
答案 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