【发布时间】:2018-10-16 07:10:35
【问题描述】:
我目前创建了一个函数来应用于 pandas 数据框,如下所示:
def timebin (col):
timebin = []
for x in range(len(col)):
if x>=0 & x<5:
return 'night'
elif x>5 & x<9:
return 'early_morning'
elif x>8 & x<12:
return 'morning'
elif x>11 & x<15:
return 'afternoon'
elif x>14 & x<18:
return 'late_afternoon'
elif x>17 & x<21:
return 'evening'
else:
return 'night'
timebin.append(x)
return timebin
并应用于数据框:
df['new_col'] = timebin(df['col'])
当我尝试这个时,我得到的只是“晚上”。有什么建议吗?
谢谢
【问题讨论】:
-
&是按位的,并且在 Python 中...似乎您想要逻辑,并且拼写为and... 或者将其重写为if 0 <= x < 5elif 5 <= x < 9等...或看看pd.cut...
标签: pandas function dataframe apply