熊猫:转换整个列的日期格式

时间:2018-12-25 20:16:49

标签: python pandas

我有一个pandas列df [“ date”],其输出类似于43374.11,这意味着它从1900-01-01开始计数。

我想将该列转换为YYYY-MM-DD格式。

我尝试了以下代码:

date_conv= datetime.date(1900, 1, 1) +
datetime.timedelta(int(df["date"]))
df["date"] =   date_conv.strftime('%Y-%m-%d')

但是,出现以下错误:

  

TypeError:无法将系列转换为类'int'>

2 个答案:

答案 0 :(得分:1)

您正在尝试将用于单个值( Int )的函数应用于整个值列( df [“ date”] )。

尝试使用 apply 方法通过调用如下函数一次转换每个值:

prod

答案 1 :(得分:0)

这就是您需要的

pd.TimedeltaIndex(df.date, unit='d')+pd.to_datetime('1900-01-01')
DatetimeIndex(['2018-10-03 02:38:24', '2015-05-17 00:00:00'], dtype='datetime64[ns]', freq=None)