我在df中有一个看起来像
的列hour
1.0
2.0
3.0
6.0
Nan
我想将其转换为时间格式,如下所示
hour
1:00
2:00
3:00
6:00
但是我无法正确格式化。我试图强制下面的格式。我也希望逻辑能够留下Nan值。
pd.to_datetime(df['hour'], format='%H', coerce=True)
但这只返回NaT值。
答案 0 :(得分:0)
下面:
format
将unit
更改为format
。如果您使用的是数字数据(就像您一样),那么 不能使用format
。 %H
仅适用于字符串。
'1970-01-01 00:00:00'
,例如字符串插值,由于您的数据是数字(浮点数),字符串插值将失败。
请注意,打印输出与问题中的输出不同。因为,pandas会将其转换为datetime类型。打印时它看起来像pd.to_datetime(df['hour'], unit='h').apply(lambda h: '{}:00'.format(h.hour))
。如果您需要所需的格式,可以运行:
df['hour'].apply(lambda h: '{}:00'.format(h))
或者:
{{1}}