加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何在半小时间隔内划分pandas日期时间列

发布时间:2020-12-16 22:56:25 所属栏目:Python 来源:网络整理
导读:我有像下面这样的pandas数据帧 date value 2018-02-12 17:30:00 23 2018-02-12 17:34:00 45 2018-02-12 17:36:00 23 2018-02-12 17:45:00 56 2018-02-12 18:37:00 54 所需的熊猫数据帧 date value half_hourly_bucket 2018-02-12 17:30:00 23 17:30-17:59 20
我有像下面这样的pandas数据帧
date                      value     
  2018-02-12 17:30:00       23
  2018-02-12 17:34:00       45
  2018-02-12 17:36:00       23
  2018-02-12 17:45:00       56
  2018-02-12 18:37:00       54

所需的熊猫数据帧

date                      value        half_hourly_bucket  
  2018-02-12 17:30:00       23           17:30-17:59
  2018-02-12 17:34:00       45           17:30-17:59
  2018-02-12 17:36:00       23           17:30-17:59
  2018-02-12 17:45:00       56           17:30-17:59
  2018-02-12 18:37:00       54           18:30-18:59

同样明智的是,我有24小时的数据.我不想使用if else循环48次.在熊猫中有没有更好的方法呢?

解决方法

我认为 strftime需要 Series.dt.floor,Timedeltas需要29Min:
print (df)
                 date  value
0 2018-02-12 18:00:00     23 <-changed values
1 2018-02-12 17:34:00     45
2 2018-02-12 17:36:00     23
3 2018-02-12 17:45:00     56
4 2018-02-12 18:37:00     54

s = df['date'].dt.floor('30T')
s1 = s.dt.strftime('%H:%M') + '-' + (s + pd.Timedelta(29 * 60,unit='s')).dt.strftime('%H:%M')
print (s1)
0    18:00-18:29
1    17:30-17:59
2    17:30-17:59
3    17:30-17:59
4    18:30-18:59
Name: date,dtype: object

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读