【发布时间】:2016-04-01 17:59:45
【问题描述】:
我有以下代码,试图在数据框中查找“日期”列的小时:
print(df['Dates'].head(3))
df['hour'] = df.apply(lambda x: find_hour(x['Dates']), axis=1)
def find_hour(self, input):
return input[11:13].astype(float)
print(df['Dates'].head(3)) 的样子:
0 2015-05-13 23:53:00
1 2015-05-13 23:53:00
2 2015-05-13 23:33:00
但是,我收到以下错误:
df['hour'] = df.apply(lambda x: find_hour(x['Dates']), axis=1)
NameError: ("global name 'find_hour' is not defined", u'occurred at index 0')
有人知道我错过了什么吗?谢谢!
请注意,如果我将函数直接放在 lambda 行中,如下所示,一切正常:
df['hour'] = df.apply(lambda x: x['Dates'][11:13], axis=1).astype(float)
【问题讨论】:
-
如果 x 是 datetime 对象并且 self 应该是什么,您也可以直接从 x 中提取小时?
标签: python pandas lambda dataframe