python - 如何将列中的所有数据转换为日期时间 - 熊猫
问题描述
我有一个大型数据框,在其date
列中混合了日期格式(只有 2 种)。
大多数格式正确,但有些数据格式不同。
即大多数是2013-11-07
。有些是20170510
. 当我尝试针对我拥有的模式验证代码时,Pandas 会引发异常。
有没有一种快速的方法可以将所有日期转换为与大多数日期相同的格式?还是我必须做一些更痛苦/手动的事情?
IE
date \
0 2013-11-07 False
2 2013-11-07 False
... ... ... ... ... ...
3595037 20170510 NaN
3595038 20200701 NaN
解决方案
有没有一种快速的方法可以将所有日期转换为与大多数日期相同的格式?
考虑到您只有两种格式,一种由它表示2013-11-07
,另一种由20170510
它表示足以-
从第一个删除以获得通用格式,即
import pandas as pd
df = pd.DataFrame({'day':['2013-11-07','20170510']})
df['day'] = df['day'].str.replace('-','')
print(df)
输出
day
0 20131107
1 20170510
pandas.to_datetime
确实理解正确
df['day'] = pd.to_datetime(df['day'])
print(df)
输出
day
0 2013-11-07
1 2017-05-10
免责声明:我转换为少数而不是多数的格式。可以使用正则表达式将其转换为多数格式,但是如果您对日期时间对象感兴趣,这是不必要的复杂化。
推荐阅读
- css - 将 h1 文本附加到背景(用于基本视差效果)纯 CSS,同时在 div 中保持对齐
- angular - 角度 6 元素布尔输入参数
- soap - Jmeter 中的 Gzipped 肥皂请求
- json - Laravel SEO 谷歌 json 数据与引用 mysql db
- redux - Redux 等待异步 thunk 继续进行
- azure-devops - 如何自动解压通过 devops 部署的 zip?
- javascript - 如何将背景颜色添加到 Google 图表中的特定行
- c# - C# IList 更新问题
- python - 在 keras 中调用 to_categorical 时出现 MemoryError
- sql - 引用的字符串在 SQL 中未正确终止