如何将时间戳小时分为白天和黑夜?



我想知道如何根据时间将数据框中的时间戳列分类为"白天和黑夜"列?

我正在尝试这样做,但无法使新列具有相同数量的条目。

d_call["time"] = d_call["timestamp"].apply(lambda x: x.time())
d_call["time"].head(1)
0    17:10:52
Name: time, dtype: object
def day_night(name):
for i in name:
if i.hour > 17: 
return "night"
else:
return "day"
day_night(d_call["time"])
'day'
d_call["Day / Night"]= d_call["time"].apply(lambda x: day_night(x))

我想获取列的整个系列,但只获取第一个索引。

您可以剥离时间以获取时间戳的小时数和w.r.t小时,您可以分配类别,也可以使用其他条件来放置时间范围

Considered df
0   2018-06-18 15:05:52.246
1   2018-05-24 21:44:07.903
2   2018-06-06 21:00:19.635
3   2018-05-24 21:44:37.883
4   2018-05-30 11:19:36.546
5   2018-05-25 11:16:07.969
6   2018-05-24 21:43:35.077
7   2018-06-07 18:39:00.258
Name: modified_at, dtype: datetime64[ns]
df['day/night'] = df.modified_at.apply(lambda x:'night'  if int(x.strftime('%H')) >19 else 'day')

外:

0      day
1    night
2    night
3    night
4      day
5      day
6    night
7      day
Name: modified_at, dtype: object

最新更新