我想创建一个新列。该栏目应包括当天的部分内容,例如“早晨”,“下午”,“晚上”和“夜晚”。我有一个名为“DepTime”的专栏,其中包括军队时间。以此为条件:
早上500至1159
下午1200至1659
1700年至2059年晚上
晚上2100至400
我想创建我喜欢的新列:
Output[]:
DepTime PartofDay
1300 Noon
2400 Night
它抛出一个错误,但我尝试过这样:
for time in flight_data["DepTime"]:
if flight_data_explored[time].map(lambda x: 500 if x > 1 else 1159):
flight_data_explored["PartofDay"] = "Morning"
有没有办法,做这样的条件。帮助将不胜感激
答案 0 :(得分:4)
您可以numpy.where
使用between
:
public ActionResult IsAuthenticated()
{
return StatusCode(200, Json("123"));
}
答案 1 :(得分:1)
这是另一种解决方案:
数据:强>
In [69]: df
Out[69]:
DepTime
0 0
1 400
2 500
3 1100
4 1200
5 1600
6 1700
7 1900
8 2100
9 2359
<强>解决方案:强>
bins = [0, 700, 1200, 1600, 2400]
labels = ['Morning','Afternoon','Evening','Night']
df['PartofDay'] = pd.cut(df.DepTime - 500 + 2400*(df.DepTime < 500),
bins=bins,
labels=labels,
right=False)
<强>结果:强>
In [71]: df
Out[71]:
DepTime PartofDay
0 0 Night
1 400 Night
2 500 Morning
3 1100 Morning
4 1200 Afternoon
5 1600 Afternoon
6 1700 Evening
7 1900 Evening
8 2100 Night
9 2359 Night