加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 查找月末Pandas DataFrame系列

发布时间:2020-12-20 10:31:50 所属栏目:Python 来源:网络整理
导读:我在DataFrame中有一个系列,我最初将其作为对象读取,然后需要将其转换为yyyy-mm-dd形式的日期,其中dd是月末. 作为一个例子,我有DataFrame df,其中Date作为对象列: ... Date ...... 200104 ...... 200508 ... 当这一切都说完了,我想要的是一个日期对象: ...
我在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中找到更多的偏移信息.

用法和输出示例:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读