首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的二进制时间列

问Python中的二进制时间列
EN

Stack Overflow用户
提问于 2019-06-17 07:18:04
回答 2查看 3K关注 0票数 3

我的Pandas dataframe中有一个datetime列(作为对象类型)。我将datetime列分解为日期和时间两列,并使用以下代码使用to_datetime将两者转换为以下格式:

代码语言:javascript
复制
 df['Time'] =  pd.to_datetime(df['Time'], format='%H:%M:%S').dt.time
 df['Date'] =  pd.to_datetime(df['Date'], format='%Y.%m.%d')

在上面的代码执行之后,我有类型日期时间的日期列和类型对象的时间列(例如,00:14:53) -我不知道为什么不日期时间,因为我以前是_ Datetime -

我想将时间列分解为4个类别/回收箱,00:00:00 - 06:00:00作为类别1,然后06:00:00到12:00:00等等。

我试过不同的方法,但都错了。

我做错了什么,有什么帮助吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-06-17 07:39:30

通过Time将Series.dt.hour列转换为小时,并使用cut进行绑定:

代码语言:javascript
复制
rng = pd.date_range('2017-04-03', periods=30, freq='H').strftime('%H:%M:%S')
df = pd.DataFrame({'Time': rng}) 

hours = pd.to_datetime(df['Time'], format='%H:%M:%S').dt.hour

df['cats'] = pd.cut(hours, 
                    bins=[0,6,12,18,24], 
                    include_lowest=True, 
                    labels=['cat1','cat2','cat3','cat4'])
代码语言:javascript
复制
print (df)
        Time  cats
0   00:00:00  cat1
1   01:00:00  cat1
2   02:00:00  cat1
3   03:00:00  cat1
4   04:00:00  cat1
5   05:00:00  cat1
6   06:00:00  cat1
7   07:00:00  cat2
8   08:00:00  cat2
9   09:00:00  cat2
10  10:00:00  cat2
11  11:00:00  cat2
12  12:00:00  cat2
13  13:00:00  cat3
14  14:00:00  cat3
15  15:00:00  cat3
16  16:00:00  cat3
17  17:00:00  cat3
18  18:00:00  cat3
19  19:00:00  cat4
20  20:00:00  cat4
21  21:00:00  cat4
22  22:00:00  cat4
23  23:00:00  cat4
24  00:00:00  cat1
25  01:00:00  cat1
26  02:00:00  cat1
27  03:00:00  cat1
28  04:00:00  cat1
29  05:00:00  cat1
票数 3
EN

Stack Overflow用户

发布于 2020-07-02 13:29:24

  1. 将日期转换为unix时间戳
代码语言:javascript
复制
def convert_to_unix(s):
    return time.mktime(datetime.strptime(s, "%Y-%m-%d %H:%M:%S").timetuple())
  1. 然后将时间戳从秒(60*60)转换为小时,并除以时间间隔(在本例中为6小时)。
代码语言:javascript
复制
df['bins'] = np.array(  [ int ( convert_to_unix(i) / 60 * 60 * 6) for i in df['Time']]  )

您可以在此之后更改类别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56626440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档