python pandas'NameError:只能使用.dt访问器和datetimelike值'decimal到hours

时间:2016-09-22 22:35:02

标签: python pandas

我在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值。

1 个答案:

答案 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}}