【发布时间】:2018-06-19 05:25:01
【问题描述】:
我有一个带有日期列的数据框,它看起来像这样。有多个日期列,例如结束日期、会计年度日期等。
Plan Start Date
8/16/2017 0:00
5/31/2017 0:00
5/31/2017 0:00
5/31/2017 0:00
5/31/2017 0:00
4/21/2016 0:00
2/25/2016 0:00
12/15/2016 0:00
12/15/2016 0:00
12/15/2016 0:00
42373
42373
42367
42367
42367
42367
42460
42460
42460
42460
42460
42759
42333
我正在尝试编写一个函数,它基本上将这些积分器更改为适当的日期格式,并将此列格式化为 datetime[64]。此列格式是当前对象类型。
我在下面写了函数
def change_date_df(df):
format_dates_df = [col for col in df.columns if 'Date' in col];
for date in format_dates_df:
df[date] = pd.to_datetime(df[date]).apply(lambda x: x.strftime('%d-%m-%y')if not pd.isnull(x) else '');
return df;
它现在回馈了一个
ValueError: mixed datetimes and integers in passed array
我猜这些数字没有被转换为日期。但我不确定我还能如何调整我的代码。
有什么想法吗?
亚当
【问题讨论】:
-
42333约会应该是什么样子? -
应该是 11/25/2015
-
你能解释一下吗?
-
我去 excel 并将列格式化为短日期。它显示 2015 年 11 月 25 日