python - pandas to_datetime 将非零填充月份和日期转换为日期时间
问题描述
我pd.to_datetime
用来将字符串转换为datetime
;
df = pd.DataFrame(data={'id':['DD-83']})
pd.to_datetime(df['id'].str.replace(r'\D+', ''), errors='coerce', format='%d%m')
%d%m
定义了零填充的日期和月份,但代码仍然将上面的字符串转换为
0 1900-03-08
Name: id, dtype: datetime64[ns]
我想知道如何避免它被转换为日期时间(例如NaT
在这种情况下转换为),如果字符串中的月份和日期不是 0 填充的。所以
DD0306
DD0706
DD-83
将转换为
1900-06-03
1900-06-07
NaT
解决方案
您需要查找-
并仅传递不带-
.
设置:
df = pd.DataFrame(data={'id':['DD-83', 'DD0706', 'DD0306']})
代码:
df['date'] = pd.to_datetime(df['id'].loc[~df['id'].str.contains('-')].str.replace(r'\D+', ''), errors='coerce', format='%d%m')
输出:
id date
0 DD-83 NaT
1 DD0706 1900-06-07
2 DD0306 1900-06-03
推荐阅读
- react-native - 使用 contentContainerStyle 滚动到 FlatList 的末尾
- jquery - 自动为项目添加一个类
- intellij-idea - 为什么在 IntelliJ IDEA 中通过数据库模式生成持久性映射时返回类型为 _Dummy_
- php - MYSQL比较同一列中的值
- webhooks - BigCommerce 蓝图网站上的 Webhook 没有快速响应(响应延迟)
- java - 为什么添加 5 个对象后这个集合的大小为 1?
- websocket - rxjs websocket - 互联网连接丢失
- entity-framework-migrations - 实体框架 6 DbMigration 中的 EntityTypeConfigurations 过多:StackoverflowException
- django - 如何获取用户关联的所有组?
- android - 在路径上找不到类“my.MainActivity”:DexPathList