Python Pandas - Index'对象没有属性'小时'

时间:2016-10-02 09:29:00

标签: python pandas apply

我有一个pandas日期框架,以下代码可以使用

df['hour'] = df.index.hour
df['c'] = df['hour'].apply(circadian)

但是我试图使用以下代码

来减少制作'小时'coloumn的需要
df['c'] = df.apply(lambda x: circadian(x.index.hour), axis=1)

但我收到错误消息

AttributeError: ("'Index' object has no attribute 'hour'", u'occurred at index 2015-09-25 01:00:00')
谁知道怎么做?

2 个答案:

答案 0 :(得分:5)

方法1:

DateTimeIndex转换为Series并使用apply

df['c'] = df.index.to_series().apply(lambda x: circadian(x.hour))

方法2:

使用axis=0计算行索引。

df['c'] = df.apply(lambda x: circadian(x.index.hour), axis=0)

答案 1 :(得分:1)

<强> 溶液
使用日期时间访问者dt

df['c'] = df.index.to_series().dt.hour.apply(circadian)