python - 替换日期中的日期以适应 pd.to_datetime 格式
问题描述
我有一个包含多列和多行的数据框。在这些列之一中,日期格式为mm/dd/yyyy
。
我正在尝试使用它进行转换,df['col'] = pd.to_datetime(df['col'])
但出现以下错误,因为有多个记录00
代替了缺失的月份或日期:
ValueError:日期超出月份的范围
我不想这样做,df['col'] = pd.to_datetime(df['col'], errors = 'coerce')
因为我想保留那里的任何数据。
我想要缺少几天或几个月或两者的所有日期(例如11/00/2018, 00/13/2018, or 00/00/2018)
,具有01
缺少值的值(例如11/01/2018, 01/13/2018, 01/01/2018
)。
解决方案
您可以使用以下正则表达式替换00
:
import pandas as pd
data = ['11/00/2018', '00/13/2018', '00/00/2018']
df = pd.DataFrame(data=data, columns=['col'])
replace = df['col'].replace('00/', '01/', regex=True)
result = pd.to_datetime(replace)
print(result)
输出
0 2018-11-01
1 2018-01-13
2 2018-01-01
Name: col, dtype: datetime64[ns]
推荐阅读
- android - 具有不同活动的社交登录
- c++ - 解释一个函数
- c# - 如何使用 WireShark 对从本地计算机发送到 Azure IOT Hub 的消息进行故障排除?
- sql - SQL server 货币代码,如果 Invoice 有一种多一种货币
- dart - 在颤动中为 MapView 设置高度
- angular - 我们将为枚举分配的变量提供什么数据类型?
- ruby-on-rails - Rails 控制器脚手架代码
- javascript - webpack构建react项目,资源文件CORS
- elasticsearch - 可以获得与特定查询匹配的记录的 size_in_bytes 吗?
- javascript - 在 Jquery 中加载动态控件