如何将时间戳记小时分为白天和晚上?

时间:2018-09-18 22:04:56

标签: python python-3.x dataframe data-analysis

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

我正在尝试这样做,但是无法用相同数量的条目来填写新列。

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))

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

1 个答案:

答案 0 :(得分:0)

您可以删除时间以获取时间戳的小时数,并且可以分配类别的小时数,也可以使用其他条件放置时间范围

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