我有一个时间序列数据,其中有一个unix seconds列(在其他列中):
df = pd.DataFrame(
{
'user': [3,3,3,3,3,6,6,6],
'timestamp': [1459467971, 1459468020, 1459468026, 1459468031,
1459468036,1513974852, 1513974853, 1513974854]
}
)
数据集用于对一些事件进行分类,一些事件在上午频繁发生,另一些事件在下午发生。
我认为time-of-day
在这个任务中也是一个重要的判别式。
我如何从中提取一天中时间的秒数?
注意:我知道使用pandas to_datetime
对象将给予HH:MM:SS
:
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='s')
#df['date'] = df['timestamp'].dt.date
df['time'] = df['timestamp'].dt.time
df
user timestamp time
0 3 2016-03-31 23:46:11 23:46:11
1 3 2016-03-31 23:47:00 23:47:00
2 3 2016-03-31 23:47:06 23:47:06
3 3 2016-03-31 23:47:11 23:47:11
4 3 2016-03-31 23:47:16 23:47:16
5 6 2017-12-22 20:34:12 20:34:12
6 6 2017-12-22 20:34:13 20:34:13
7 6 2017-12-22 20:34:14 20:34:14
有没有一种简单的方法可以找出代表时间的秒数,比如:
user timestamp time-of-day
0 3 2016-03-31 23:46:11 85571
1 3 2016-03-31 23:47:00 85620
2 3 2016-03-31 23:47:06 85626
3 3 2016-03-31 23:47:11 85631
4 3 2016-03-31 23:47:16 85636
5 6 2017-12-22 20:34:12 74052
6 6 2017-12-22 20:34:13 74053
7 6 2017-12-22 20:34:14 74054
2条答案
按热度按时间fwzugrvs1#
可以使用
dt.normalize
减去日期部分:注:我不确定
time-of-day
作为连续变量是否相关。也许您应该考虑将其离散为8个3小时的块?jaxagkaj2#
可以使用
hour
、minute
和second
以及一些基本代数来完成