dataframe中的每一列都是一个Series对象,这个Series对象的index默认是从0开始,步长为1进行递增。

如果你的dataframe中有一列是日期,对于其他列字段需要按照日期字段进行聚合的话,需要将待聚合列的Series对象index属性修改为该日期字段。

关键是这个操作:

offline_ratio = custs.offline_ratio
offline_ratio.index=custs['day_tm'].apply(lambda x:datetime.strptime(x,'%Y-%m-%d'))
offline_ratio_month = offline_ratio.resample('m').mean()
  1. 修改Series对象的index属性为日期
  2. resample函数可以通过调整参数,实现按月(m),按周(w),按季度(q)等聚合
import pandas as pd
import matplotlib.pyplot as plt
from impala.dbapi import connect
from impala.util import as_pandas
from datetime import datetimeconn = connect(host='你服务器的ip',port=端口号,user='用户名',password='密码',auth_mechanism='PLAIN')
curs = conn.cursor()curs.execute("""select substring(created_time,1,10) as day_tm,sum(case when date_from in (0,3) then 1 else 0 end) as offline_custs,sum(case when date_from in (0,3) and so_no is not nulland substring(created_time,1,10)= substring(so_date,1,10)then 1 else 0 end) as offline_orders,sum(case when date_from not in (0,3) then 1 else 0 end) as online_custs,sum(case when date_from not in (0,3) and so_no is not nulland substring(created_time,1,10)= substring(so_date,1,10)then 1 else 0 end) as online_ordersfrom 你的表名 cwhere substring(created_time,1,4) >= '2019'                     group by substring(created_time,1,10)order by substring(created_time,1,10) asc""")
custs_to_orders = as_pandas(curs)custs_to_orders['offline_ratio'] = custs_to_orders['offline_orders']/custs_to_orders['offline_custs']
custs_to_orders['online_ratio'] = custs_to_orders['online_orders']/custs_to_orders['online_custs']offline_ratio = custs_to_orders.offline_ratio
offline_ratio.index=custs_to_orders['day_tm'].apply(lambda x:datetime.strptime(x,'%Y-%m-%d'))
offline_ratio_month = offline_ratio.resample('m').mean()

day_tm
2019-01-31 0.301876
2019-02-28 0.183390
2019-03-31 0.178983
2019-04-30 0.183437
2019-05-31 0.202010
2019-06-30 0.242368
2019-07-31 0.177942
2019-08-31 0.173683
2019-09-30 0.179291
2019-10-31 0.186196
2019-11-30 0.183292
2019-12-31 0.221013
2020-01-31 0.256396
2020-02-29 0.260454
2020-03-31 0.162729
2020-04-30 0.117873
2020-05-31 0.103655
Freq: M, Name: offline_ratio, dtype: float64

dataframe日期按周、按月、按季度聚合相关推荐

  1. oracle直接将日期转为月份,如何使用Oracle将日期转换为周,月,季度,半年,年...

    本文主要向大家介绍了如何使用Oracle将日期转换为周,月,季度,半年,年,通过具体的代码向大家展现,希望对大家学习Oracle有所帮助. 实现当前时间,周,月,季度,半年,年的转换,其中特别注意的是 ...

  2. Oracle日期转换为周,月,季度,半年,年

    实现当前时间,周,月,季度,半年,年的转换,其中特别注意的是周的处理,IW方式处理逻辑,如果本周有大于等于4天,本周属于几年,如果小于4天,本周属于下一年 以1990/12/31为例,这天属于1991 ...

  3. JAVA将一段时间 按周、月、季度、半年、年进行分割

    JAVA将一段时间 按周.月.季度.半年.年进行分割. 有时候开发常常会传入一个开始时间和结束时间,将两个时间进行分割,返回一个时间的集合以下是我们小组成员所书写的实体类 package com.ai ...

  4. Impala SQL实现按天、自然周、月、季度、年份周期统计

    在整理完了Oracle.MySQL中如何通过SQL实现按天.自然周.月.季度.年份周期统计时,忽然想起在hive与impala中,SQL的语法也是不尽相同,但又有共通之处. 俗话说,授人予鱼,不若授人 ...

  5. C#根据当前时间获取周,月,季度,年度等时间段的起止时间

    C#根据当前时间获取周,月,季度,年度等时间段的起止时间 最近有个统计分布的需求,需要按统计本周,上周,本月,上月,本季度,上季度,本年度,上年度等时间统计分布趋势,所以这里就涉及到计算周,月,季度, ...

  6. Tableau--使用参数为报表增加一个统计周期筛选条件(日,周,月,季度,年)

    有这样一个需求:要求在报表中增加一个统计周期控件,用来控制折线图的内容是按照控件里的选项(日,周,月,季度,年)来展示的. 这里用到了参数. 方法: step1: 创建一个字符型参数,'统计周期'. ...

  7. 利用element日期组件,封装季度组件, 实现日、周、月、季度切换,默认禁用部分日期选择(附带:获取昨日、昨日所在周、昨日所在月、昨日所在季度等方法)

    具体效果图下: 1. 季度组件封装,创建一个 quarterDate.vue文件 <!-- 季度组件 --> <template><div><el-popov ...

  8. mysql 根据日期查询周、月、年起止时间

    查询周起止日期 SELECTDATE_ADD( '2019-11-12', INTERVAL - WEEKDAY ( '2019-11-12' ) DAY ) week_begin,DATE_ADD( ...

  9. LocalDateTime工具类:根据当前、周、月、季度、半年、年等维度获取时间hutool工具包获取农历日期,生肖,传统节日

    1. 简介 Java8提供了全新的日期处理包(java.time.*),根据Java8日期新特性封装日期时间工具类LocalDateTimeUtils. 2. 工具类方法目录 说明 方法名称 当前时间 ...

最新文章

  1. LeetCode Anagrams
  2. 中科大计算机应用,中科大2012计算机应用专业考研初试考什么
  3. C语言中低位存放,C语言 大端小端存储解析以及判断方法
  4. zabbix监控工具
  5. linux桌面发展方向,观点|Linux 桌面的发展之路!
  6. 垂直梯形校正画质损失多少_全面了解投影梯形校正,切不可滥用!
  7. 小霸王消失,好记星落灰,谁能“取悦”10后?
  8. [知乎] 端游、手游服务端架构演变
  9. Datamill 一个开源的框架
  10. vb2008如何连接mysql_VB如何连接ACCESS数据库详解
  11. jszip打包下载文件
  12. armbian编译安装mentohust 认证锐捷客户端
  13. linux内核 quota,Linux系统磁盘配额(quota)
  14. 448. Find All Numbers Disappeared in an Array -- Python
  15. 再读《终身成长》——重塑思维
  16. CABasicAnimation,CAKeyframeAnimation,CATransition,CAAnimationGroup,UIBezierPath之间做动画的不同点和各自的使用范围。
  17. Android定制属于你自己的导航栏
  18. httpd的MPM工作模式
  19. Learned-Mixin +H(LMH)
  20. java第二个案例:运动员和教练(巩固理解抽象类和接口、继承等知识点)

热门文章

  1. 雷军的猪已经落地了,那人工智能的猪该飞去哪?
  2. Leetcode 860. 柠檬水找零(贪心) 记录反思
  3. 扭转战局的棋子 安卓4.4 ART模式实测解析
  4. 一种防山火在线监测装置
  5. 购买价格与商品价格和SKU价格的关系
  6. Sublime Text3 JSON格式化插件JsFromat
  7. mediasoup 学习笔记 【二】Router 房间
  8. OpenCV3实现图像拼接融合
  9. 《功夫熊猫》字幕翻译个案研究
  10. 《利用Python进行数据分析》第一个案例