gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:09:20 25 4
gpt4 key购买 nike

所以我的代码如下:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com