我有一个数据框,其中有2列是float64对象。我正在尝试将它们转换为日期。
col1, col2
43835.0, 0.145833
43835.0, 0.166667
预期产量:
col1, col2
05/01/2020,3:30:00 AM
05/01/2020, 4:00:00 AM
当我尝试pd.to_datetime(df['col1'])
将值分别转换为1970-01-01 00:00:00.000043835
和时1970-01-01
首先可以将其转换为datetimes第一栏,然后将其转换为timedeltas:
df['col1'] = pd.to_timedelta(df['col1'], unit='d') + pd.datetime(1899, 12, 30)
df['col2'] = pd.to_timedelta(df['col2'], unit='d').dt.floor('S')
print (df)
col1 col2
0 2020-01-05 03:29:59
1 2020-01-05 04:00:00
自定义日期和时间的一种想法,但由于精确度输出有些不同:
s = df['col1'] + df['col2']
dates = pd.to_timedelta(s, unit='d').add(pd.datetime(1899, 12, 30)).dt.floor('S')
df['col1'] = dates.dt.strftime('%d/%m/%Y')
df['col2'] = dates.dt.strftime('%H:%M:%S %p')
print (df)
col1 col2
0 05/01/2020 03:29:59 AM
1 05/01/2020 04:00:00 AM
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句