python - 解决当月的最后一天python
问题描述
我在 df 中的 DATA 中有一个列,我需要从中创建一个新列来提取该月的最后一个工作日或该特定月份的该月的最后一天。
df = pd.DataFrame({
'DATA':['2021-10-06','2021-10-05','2021-10-04','2021-10-01','2021-09-30','2021-09-29 ','2021-09-28','2021-09-27 ']
})
print(df)
我设法在 BMonthEnd() 的帮助下做到了这一点。
df['DATA2'] = pd.to_datetime(df['DATA']) + BMonthEnd()
但是当我在给定月份的最后一个工作日到达时,它会跳到下个月。
可以使用一种方法来使用该月的最后一个日期。
例如使用 BMonthEnd()
DATA DATA2
2021-10-06 2021-10-29
2021-10-05 2021-10-29
2021-10-04 2021-10-29
2021-10-01 2021-10-29
2021-09-30 2021-10-29 ** Erro, Correct = 2021-09-30
2021-09-29 2021-09-30
2021-09-28 2021-09-30
2021-09-27 2021-09-30
有什么办法可以reolver?可以使用另一种方式
解决方案
您必须解决看起来像错误的问题,这很糟糕,但是您可以手动捕获日期并在当月加入。
import pandas as pd
df = pd.DataFrame({
'DATA':['2021-10-06','2021-10-05','2021-10-04','2021-10-01','2021-09-30','2021-09-29','2021-09-28','2021-09-27 ']
})
df['m'] = pd.to_datetime(df['DATA']).dt.month
eom=pd.date_range('1/1/2021', periods=12, freq='BM').to_frame(name='DATA2')
eom['m'] = eom['DATA2'].dt.month
df.merge(eom, on='m').drop(columns='m')
推荐阅读
- python - 未安装 Anaconda 中的 cryptocompare 模块以获取实时加密货币价格
- react-native - react-native 功能组件重新渲染
- bash - 在 dockerfile 中传递参数?
- asp.net-core-webapi - 在 ASP.NET CORE 上使用服务器发送的事件时如何检测断开连接?
- python - 在 python 字典中需要帮助
- python - TypeError:“函数”对象不可下标 Python/Numpy
- python - 如何从 MongoDB 的嵌套文档中更新“状态”值?
- python - 使用 Apache Airflow 的 SimpleHttpOperator 上传二进制数据的 PUT 请求
- javascript - 发生后更改特定行模板
- sql - 对 bigquery 中的重复行进行编号