python - 使用 pandas 将日期列转换为标准格式

标签 python pandas datetime

如何使用 pandas 将日期列转换为标准格式,即 12-08-1996。我拥有的数据是:

enter image description here

我通过网上搜索尝试了一些方法,但还没有找到一种可以检测格式并使其成为标准的方法。

这是我编写的代码:

df = pd.read_excel(r'date cleanup.xlsx')
df.head(10)
df.DOB = pd.to_datetime(df.DOB) #Error is in this line

我得到的错误是:

ValueError: ('Unknown string format:', '20\ \december\ \1992')

更新: 使用

for date in df.DOB:
    print(parser.parse(date))

效果很好,但有一个值 20\\december\\1992,它会给出上面突出显示的错误。因此,我并不熟悉数据中的所有格式,这就是为什么我正在寻找一种可以自动检测数据并将其转换为标准格式的技术。

最佳答案

您可以使用dateparser图书馆:

import dateparser

df = pd.DataFrame(["12 aug 1996", "24th december 2006", "20\\ december \\2007"], columns = ['DOB'])
df['date'] = df['DOB'].apply(lambda x :dateparser.parse(x))

输出

|   |        DOB         |    date    |
|---|--------------------|------------|
| 0 | 12 aug 1996        | 1996-08-12 |
| 1 | 24th december 2006 | 2006-12-24 |
| 2 | 20\ december \2007 | 2020-12-07 |

编辑

注意,有一个 STRICT_PARSING可用于处理异常的设置:

You can also ignore parsing incomplete dates altogether by setting STRICT_PARSING

df['date'] = df['DOB'].apply(lambda x : dateparser.parse(x, settings={'STRICT_PARSING': True}) if len(str(x))>6 else None)

关于python - 使用 pandas 将日期列转换为标准格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56629179/

相关文章:

python - 将数组结构转换为数据框以获取列名称

python - 尽管设置了种子,仍无法重现 H2O GBM 预测

Excel 将秒 dd hh mm ss 转换为更大的值

javascript - 如何通过 json 和 twig 将 DateTime 对象传递给 javascript 日期对象

python - 你能动态地将类属性/变量添加到 python 中的子类吗?

python - 使用 numpy 创建任意形状的单位矩阵

python - 带参数的eval函数

python - 可以在 shell 中逐行运行脚本,但完整的脚本不返回任何内容

python - 将具有多列的数据框 reshape 为行组

android - 如何在 flutter 中将 DateTime 转换为 TZDateTime?