首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python/Pandas数据入库时间

问Python/Pandas数据入库时间
EN

Stack Overflow用户
提问于 2017-10-25 18:43:00
回答 2查看 1.7K关注 0票数 8

我有一个包含两列的DataFrame

代码语言:javascript
复制
    userID     duration
0   DSm7ysk    03:08:49
1   no51CdJ    00:35:50
2   ...

其中'duration‘的类型为timedelta。我试过使用

代码语言:javascript
复制
bins = [dt.timedelta(minutes = 0), dt.timedelta(minutes = 
        5),dt.timedelta(minutes = 10),dt.timedelta(minutes = 
        20),dt.timedelta(minutes = 30), dt.timedelta(hours = 4)]

labels = ['0-5min','5-10min','10-20min','20-30min','30min+']

df['bins'] = pd.cut(df['duration'], bins, labels = labels)

但是,入库的数据不使用指定的bin,而是为帧中的每个持续时间创建的。

将时间增量对象绑定到不规则箱中最简单的方法是什么?或者我只是遗漏了一些显而易见的东西?

EN

回答 2

Stack Overflow用户

发布于 2019-01-17 02:18:09

它适用于我的熊猫0.23.4

代码语言:javascript
复制
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'userID': ['DSm7ysk', 'no51CdJ', 'foo', 'bar'],
    'duration': [pd.Timedelta('3 hours 8 minutes 49 seconds'), pd.Timedelta('35 minutes 50 seconds'), pd.Timedelta('1 minutes 13 seconds'), pd.Timedelta('6 minutes 43 seconds')]
})

bins = [
    pd.Timedelta(minutes = 0),
    pd.Timedelta(minutes = 5),
    pd.Timedelta(minutes = 10),
    pd.Timedelta(minutes = 20),
    pd.Timedelta(minutes = 30),
    pd.Timedelta(hours = 4)
]

labels = ['0-5min', '5-10min', '10-20min', '20-30min', '30min+']

df['bins'] = pd.cut(df['duration'], bins, labels = labels)

结果:

​

​

票数 4
EN

Stack Overflow用户

发布于 2019-01-17 02:30:32

您可以在入库前标准化到秒数。这将问题简化为对整数进行装箱。

代码语言:javascript
复制
df = pd.DataFrame({'userID': ['A', 'B'],
                   'duration': pd.to_timedelta(['00:08:49', '00:35:50'])})

L = ['00:00:00', '00:05:00', '00:10:00', '00:20:00', '00:30:00', '04:00:00']

bins = pd.to_timedelta(L).total_seconds()
cats = ['0-5min', '5-10min', '10-20min', '20-30min', '30min+']

df['bins'] = pd.cut(df['duration'].dt.total_seconds(), bins, labels=cats)

print(df)

#    duration userID     bins
# 0  00:08:49      A  5-10min
# 1  00:35:50      B   30min+
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46930291

复制
相关文章

相似问题

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