python-3.x - 将默认日期时间对象值赋予 pandas.to_datetime()
问题描述
我有一些不同格式的字符串日期,我使用to_datetime()
. 但是,字符串列表也有一些我想转换为默认日期的垃圾值。
import pandas as pd
import datetime as dt
print(df)
dates
0 2018-02-12
1 2018-03-19
2 12-24-2018
3 garbage
我errors='coerece'
用来避免抛出异常。它产生NaT
,在我的情况下,我想转换为默认日期 2018-12-31。
df['dates'] = pd.to_datetime(df['dates'], errors='coerce')
低于结果。
dates
0 2018-02-12
1 2018-03-19
2 2018-12-24
3 NaT
方法:
我正在检查给定值是否是有效的日期时间。如果没有,请放置默认的日期时间对象。但由于某种原因,它会产生所有默认值。
df['dates'].apply(lambda x: dt.datetime(2018,12,31) if x is not dt.datetime else x)
电流输出
dates
0 2018-12-31
1 2018-12-31
2 2018-12-31
3 2018-12-31
预期输出:
dates
0 2018-02-12
1 2018-03-19
2 2018-12-24
3 2018-12-31
有没有办法为 to_datetime() 函数提供默认日期,这样它就不会产生 NaT?如果没有,我如何在之后设置默认日期?
解决方案
您只需要在通话fillna
结束后添加pd.to_datetime
pd.to_datetime(df['dates'], errors='coerce').fillna(pd.to_datetime('2018-12-31'))
Out[217]:
0 2018-02-12
1 2018-03-19
2 2018-12-24
3 2018-12-31
Name: dates, dtype: datetime64[ns]
推荐阅读
- kubernetes - 无法连接到卡夫卡经纪人
- json - 需要一种将特定数据从 Firebase RealtimeDB 提取到 Google 表格的方法
- sql - 如何通过选择语句合并 2 个组
- bash - Curl:将 Bash 中的 HTTP 错误保存到日志并将数据保存到文件
- swift - 如何处理来自游戏中心游戏的邀请链接?
- docker - 无法连接到 tcp://localhost:2375/ 上的 Docker 守护程序。docker 守护进程是否正在运行。在 GitLab 上
- javascript - 变量为 null 并且 ReferenceError 分配了变量
- linux - 如何在 linux 中从 ps grep 特定进程?
- python - 如何在 Python 3.8 中安装 Pillow?
- javascript - 如何确保在所有事件触发后单击方法运行?