python - 如何按特定月份/日期过滤日期数据框?

标签 python pandas dataframe

所以我的代码如下:

df['Dates'][df['Dates'].index.month == 11]

我正在做一个测试,看看我是否可以过滤月份,以便它只显示 11 月的日期,但这没有用。它给了我以下错误:AttributeError: 'Int64Index' object has no attribute 'month'。

如果我这样做

print type(df['Dates'][0])

然后我得到类“pandas.tslib.Timestamp”,这让我相信存储在数据框中的对象类型是时间戳对象。 (我不确定'Int64Index'来自哪里......因为之前的错误)

我想要做的是:dataframe 列包含从 2000 年初到现在的日期,格式如下:dd/mm/yyyy。我只想过滤 11 月 15 日到 3 月 15 日之间的日期,与 YEAR 无关。最简单的方法是什么?

谢谢。

这是 df['Dates'](带索引):

0    2006-01-01
1    2006-01-02
2    2006-01-03
3    2006-01-04
4    2006-01-05
5    2006-01-06
6    2006-01-07
7    2006-01-08
8    2006-01-09
9    2006-01-10
10   2006-01-11
11   2006-01-12
12   2006-01-13
13   2006-01-14
14   2006-01-15
...

最佳答案

使用 pd.to_datetimedt 访问器

公认的答案不是解决此问题的“ Pandas ”方式。 要仅选择具有 month 11 的行,请使用 dt 访问器:

# df['Date'] = pd.to_datetime(df['Date']) -- if column is not datetime yet
df = df[df['Date'].dt.month == 11]

同样适用于几天或几年,您可以将 dt.month 替换为 dt.daydt.year

除此之外还有很多,这里列举几个:

  • dt.quarter
  • dt.week
  • dt.weekday
  • dt.day_name
  • dt.is_month_end
  • dt.is_month_start
  • dt.is_year_end
  • dt.is_year_start

有关完整列表,请参阅 documentation

关于python - 如何按特定月份/日期过滤日期数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25873772/

相关文章:

python - json_normalize 带有包含字典的列表的 JSON 文件(包括示例)

python - Pandas 合并而不复制列

python - 如何根据 Pandas 另一列中的条件生成具有值的新列

python - 按 shell/python 中的某个字段对文本文件进行排序

python - 寻找一种更优雅的方法来获得圆柱坐标中方位角的 2D numpy 数组

python - 如何用空格填写 Python 字符串?

python - python 中是否有与 MATLAB 函数 bsxfun 等效的函数?

python-3.x - 如何将SEC txt文件读入 Pandas 数据框?

python - 数字 : normalize column B according to value of column A

python-2.7 - 在 Python “html5lib not found” 中读取 html 到数据框时出错