如何使用Python在Pandas DataFrame中查找特定月份的末尾数据?

2026-06-11 05:101阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计388个文字,预计阅读时间需要2分钟。

如何使用Python在Pandas DataFrame中查找特定月份的末尾数据?

在DataFrame中有一个日期序列,我首先将其作为对象读取,然后需要将其转换为yyyy-mm-dd格式的日期,其中dd是月末。例如,我有DataFrame df,其中Date作为对象列:Date......200104......200......

我在DataFrame中有一个系列,我最初将其作为对象读取,然后需要将其转换为yyyy-mm-dd形式的日期,其中dd是月末.

作为一个例子,我有DataFrame df,其中Date作为对象列:

... Date ... ... 200104 ... ... 200508 ...

当这一切都说完了,我想要的是一个日期对象:

... Date ... ... 2001-04-30 ... ... 2005-08-31 ...

这样df [‘Date’].item()返回

datetime.date(2001, 04, 30)

我已经使用以下代码几乎到了那里,但我所有的日期都是在月初,而不是结束.请指教.

df['Date'] = pd.to_datetime(df['Date'], format="%Y%m").dt.date

注意:我已经导入了Pandas ad pd,日期时间为dt

你可以使用pandas.tseries.offsets.MonthEnd:

from pandas.tseries.offsets import MonthEnd df['Date'] = pd.to_datetime(df['Date'], format="%Y%m") + MonthEnd(1)

MonthEnd中的1只指定向前移动一步到月末的下一个日期. (使用0或将其留空也适用于您的情况).如果你想要下个月的最后一天,你可以使用MonthEnd(2)等.这应该适用于任何月份,所以你不需要知道这个月的天数,或者类似的东西.可以在documentation中找到更多的偏移信息.

如何使用Python在Pandas DataFrame中查找特定月份的末尾数据?

用法和输出示例:

df = pd.DataFrame({'Date': [200104, 200508, 201002, 201602, 199912, 200611]}) df['EndOfMonth'] = pd.to_datetime(df['Date'], format="%Y%m") + MonthEnd(1) Date EndOfMonth 0 200104 2001-04-30 1 200508 2005-08-31 2 201002 2010-02-28 3 201602 2016-02-29 4 199912 1999-12-31 5 200611 2006-11-30

本文共计388个文字,预计阅读时间需要2分钟。

如何使用Python在Pandas DataFrame中查找特定月份的末尾数据?

在DataFrame中有一个日期序列,我首先将其作为对象读取,然后需要将其转换为yyyy-mm-dd格式的日期,其中dd是月末。例如,我有DataFrame df,其中Date作为对象列:Date......200104......200......

我在DataFrame中有一个系列,我最初将其作为对象读取,然后需要将其转换为yyyy-mm-dd形式的日期,其中dd是月末.

作为一个例子,我有DataFrame df,其中Date作为对象列:

... Date ... ... 200104 ... ... 200508 ...

当这一切都说完了,我想要的是一个日期对象:

... Date ... ... 2001-04-30 ... ... 2005-08-31 ...

这样df [‘Date’].item()返回

datetime.date(2001, 04, 30)

我已经使用以下代码几乎到了那里,但我所有的日期都是在月初,而不是结束.请指教.

df['Date'] = pd.to_datetime(df['Date'], format="%Y%m").dt.date

注意:我已经导入了Pandas ad pd,日期时间为dt

你可以使用pandas.tseries.offsets.MonthEnd:

from pandas.tseries.offsets import MonthEnd df['Date'] = pd.to_datetime(df['Date'], format="%Y%m") + MonthEnd(1)

MonthEnd中的1只指定向前移动一步到月末的下一个日期. (使用0或将其留空也适用于您的情况).如果你想要下个月的最后一天,你可以使用MonthEnd(2)等.这应该适用于任何月份,所以你不需要知道这个月的天数,或者类似的东西.可以在documentation中找到更多的偏移信息.

如何使用Python在Pandas DataFrame中查找特定月份的末尾数据?

用法和输出示例:

df = pd.DataFrame({'Date': [200104, 200508, 201002, 201602, 199912, 200611]}) df['EndOfMonth'] = pd.to_datetime(df['Date'], format="%Y%m") + MonthEnd(1) Date EndOfMonth 0 200104 2001-04-30 1 200508 2005-08-31 2 201002 2010-02-28 3 201602 2016-02-29 4 199912 1999-12-31 5 200611 2006-11-30