【发布时间】:2018-11-17 13:57:41
【问题描述】:
将 pandas 数据框中的两种日期格式转换为一种最简单的方法是什么? 以下是我的意见
import pandas as pd
df = pd.DataFrame({'DOB': {0: '26/1/16 ', 1: '26/1/2016 '}})
预期输出:
DOB
0 26/1/2016
1 26/1/2016
我需要保持相同的日期格式。
跟随 cmets 并使用 pd.to_datetime
pd.to_datetime(df.DOB)
输出:
0 2016-01-26
1 2016-01-26
这很好,但我想保留%d/%m/%Y的原始格式
我在执行 pd.to_datetime 后尝试使用格式参数
df.DOB=pd.to_datetime(df.DOB,format="%d/%m/%Y")
它似乎并没有改变格式。 输出:
0 2016-01-26
1 2016-01-26
如果我直接在下面执行以提供格式,它会给出错误,因为输入的格式不同
df = pd.DataFrame({'DOB': {0: '26/1/2016 ', 1: '26/1/2016 '}})
df.DOB=pd.to_datetime(df.DOB,format="%d/%m/%Y")
错误:
ValueError: unconverted data remains:
长话短说我怎样才能保留原来的日期格式
【问题讨论】:
-
pd.to_datetime(df.DOB, errors='coerce')就这样工作 -
pd.to_datetime(df['DOB'])可以。 -
但是在这种格式中,如果他们有一个像
6/1/16这样的日期,pd.to_datetime(df['DOB'])会读作 6 月 1 日,而不是 1 月 6 日 -
我想保留格式。 pd._to_datetime 会给我输入格式以外的两种格式的日期。当我将格式作为参数给出时,它会引发错误@HarvIpan
-
@jpp 我现在解释得更清楚了。