首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

『数据分析』pandas计算连续行为天数的几种思路

获取案例数据 大家可以直接在后台回复 0427 获取案例数据,同样也可以通过以下方式获取案例数据。...求连续污染持续天数 结合上次的《利用Python统计连续登录N天或以上用户》案例,我们这里再提供1种新的解题思路,合计2种解题思路。 以下解法来自小明哥和才哥 2.1....图8:思路2的解法1结果 解法2:利用shift和cumsum创建辅助列 先创建空气质量的shift列,下移动一位 如果shift列和空气质量列相等,则判断列为0,否则为1 辅助列为判断列累加求和 ?...= aqi.空气质量).cumsum()) # 辅助列 .time.agg(['count','min','max']) # 计数及获取日期区间 .nlargest(5,'count')...图9:思路2的解法2结果 按照小明哥的输出结果,调整代码如下: ( aqi.query("空气质量=='污染'") .groupby((aqi.空气质量 !

7.7K11

商业数据分析比赛实战,内附项目代码

为了让大家更加熟悉商业数据分析流程,赛事平台和鲸社区还非常贴心提供了多场数据分析专题分享,下面就为大家打来第一场直播培训中,主讲老师黄凯根据大家反馈提供的培训Notebook,覆盖数据预处理、分组聚合计算...我们只要简单的进行一下整理和清洗即可; 再针对我们的分析目标,进行分组聚合计算,得出有效的结论; 最后对我们得出的结论进行可视化展示。...AxesSubplot at 0x7fbfe0bf07f0> 本项目第一次使用分组聚合计算, 在这里详细讲解一下 分组: groupby 按年度分组 聚合: count 企业名称计数 请思考为什么用企业名称而不是用其他列来计数...回答:因为其他列包括空值,不唯一 计算: cumsum 增长求和 拓展:去 pandas 官网查看 cumsum 方法的文档,并查看其他相关方法。...T. plot() # groupby 可以对多列数据进行分组 # unstack 对多项索引转换为单例索引 # T 将x轴和y轴转置, 是 transform 的简写方法 # 技巧:unstack()

1.6K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    神奇的 SQL ,同时实现小计与合计,阁下该如何应对

    关于 小计与合计 ,大家肯定不会陌生,甚至很熟悉   或多或少都实现过这样的功能,尤其是涉及到报表统计的时候, 小计与合计 是绕不过去的坎   那有哪些实现方式了,我们今天就来盘一盘   GROUP...但是,如果加个限制条件:只用 SQL   此时如何实现小计和合计,各位该如何应对?   是不是有面试內味了?   ...在我看来不仅繁琐,效率也会因为繁琐而低下   面试官又会接着问了:在只用 SQL 的前提下,有没有更合适的实现方法?   此时,各位又该如何应对?   ...,没有聚合键,也就相当于没有 GROUP BY 子句,这时会得到全部数据的 合计行   该合计行记录称为 超级分组记录(super group row) ,虽然听上去很屌,但还是希望大家把它当做未使用...GROUP BY 的 合计行 来理解   正是因为 合计行 的 ware_category 列的键值不明确,所以会默认使用 NULL   前面的案例只有一个聚合列,如果再加一列 registration_date

    43210

    一场pandas与SQL的巅峰大战(五)

    第三篇文章一场pandas与SQL的巅峰大战(三)围绕日期操作展开,主要讨论了日期获取,日期转换,日期计算等内容。...公众号后台回复“对比五”,可以获取本文全部代码和数据。数据的样例为: ? 我们的目标是,计算累计到当天的销售额占总销售额的比例。...如何能按照月份分组求每组的累计百分比呢? 首先仍然是求累计金额,但要分月累计。在上面的基础上加上月份相等条件即可,从结果中可以看到,在11月和12月cum列是分别累计的。...我们一起来看一下使用三种函数计算分组和不分组累计百分比的方法。 ? 1.不分组情况 cumsum函数 cumsum是pandas中专门用于计算累计和的函数。...关于结果如何显示成百分比的形式,可以参考上一篇文章,此处略 。 expanding函数 pandas中的expanding函数是窗口函数的一种,它不固定窗口的大小,而是进行累计的计算。

    2.6K10

    一起来分析下游戏的开发与销售情况!

    数据中含有1980-2017年近40年各出版商发行的游戏,在这份数据的基础上分析一下哪些游戏平台和游戏出版商实力更强?什么游戏类型是更受人们喜爱的?在不同地区游戏的销售概况是如何的?...这里我们要获取每一年的各个地区所有游戏销售额总值,我们就要用到cumsum这个方法——cumsum方法通俗说是一个累加和,注意红框里的数据,这里是依据年份将每部游戏的销售额相加 #cumsum函数是累加和...'] = df['NA_Sales'].groupby(df['Year']).cumsum() df['EU_sum_sales'] = df['EU_Sales'].groupby(df['Year...']).cumsum() df['JP_sum_sales'] = df['JP_Sales'].groupby(df['Year']).cumsum() df['Other_sum_sales'] =...df['Other_Sales'].groupby(df['Year']).cumsum() df.head(10) 得到如下结果: ?

    72730

    一日一技:pandas获取groupby分组里最大值所在的行

    如下面这个DataFrame,按照Mt分组,取出Count最大的那行 import pandas as pd df = pd.DataFrame({'Sp':['a','b','c','d','e...Count':[3,2,5,10,10,6]}) CountMtSpValue03s1a112s1b225s2c3310s2d4410s2e556s3f6 方法1:在分组中过滤出Count最大的行...方法2:用transform获取原dataframe的index,然后过滤出需要的行 print df.groupby(['Mt'])['Count'].agg(max) idx=df.groupby...('Mt', as_index=False).first() MtCountSpValue0s13a11s210d42s36f6 那问题又来了,如果不是要取出最大值所在的行,比如要中间值所在的那行呢...思路还是类似,可能具体写法上要做一些修改,比如方法1和2要修改max算法,方法3要自己实现一个返回index的方法。不管怎样,groupby之后,每个分组都是一个dataframe。

    4.2K30

    基尼系数直接计算法_基尼系数简单的计算方法

    大家好,又见面了,我是你们的朋友全栈君。 使用两种方法,通过python计算基尼系数。 在sql中如何计算基尼系数,可以查看我的另一篇文章。两篇文章取数相同,可以结合去看。...(sorted(np.append(wealths, 0))) #加上0,再排序,再计算cumsum # 取最后一个,也就是原数组的和 sum_wealths = cum_wealths...,表示这个位置原来的值属于1到n的哪个组 y = m.groupby(by = m).size().cumsum() # 得到每个分组中的最后一个数的位置在哪里 # size表示每个组里面有多少个元素...# cumsum之后显示每个组里面最后一个元素的位置 #就是图中分为点的位置 t = yarray[y[:]] #取得在yarray上的值 #就是图中w0 w1 w2等的值 g = 1 - (1/n)*...(range(0, len(cum_wealths))), bins = n, labels = False) y = m.groupby(by = m).size().cumsum() - 1 t =

    1.4K30

    Numpy中的数学和统计方法

    非聚合计算就是方法调用返回的结果是一个由中间结果组成的数组。 ?...= 0-----') arr_axi0 = np.cumsum(arr,axis = 0) print(arr_axi0) print('-----axis = 1-----') arr_axi1...= np.cumsum(arr,axis = 1) print(arr_axi1) [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] -----axis =...▲二维数组的axis 由此我们也可以看出对于二维数组参数axis的值只能是0或1,那么如何去理解非聚合计算的结果由中间值组成的数组呢?...axis = 0的时候,知道它是从行的角度去考虑函数,那如果是一般的聚合计算的函数,如sum...它们返回的是一个向量,但是对于非聚合计算的函数,它们返回的数组的形状与原来数组的形状相同,它们每一行的值都是上一行值与本行值的和

    85740

    3 个不常见但非常实用的Pandas 使用技巧

    To_period 在 Pandas 中,操作 to_period 函数允许将日期转换为特定的时间间隔。使用该方法可以获取具有许多不同间隔或周期的日期,例如日、周、月、季度等。...Cumsum 和 groupby cumsum 是一个非常有用的 Pandas 函数。它计算列中值的累积和。...以下是我们通常的使用方式: df["cumulative_sum"] = df["amount"].cumsum()df.head() 这样就获得了金额列的列值累积总和。...但是它只是全部的总和没有考虑分类。在某些情况下,我们可能需要分别计算不同类别的累积和。 Pandas中我们只需要按类列对行进行分组,然后应用 cumsum 函数。...df["class_cum_sum"] = df.groupby("class")["amount"].cumsum() 让我们查看 A 类的结果。

    1.3K10

    3 个不常见但非常实用的Pandas 使用技巧

    1、To_period 在 Pandas 中,操 to_period 函数允许将日期转换为特定的时间间隔。使用该方法可以获取具有许多不同间隔或周期的日期,例如日、周、月、季度等。...和 groupby cumsum 是一个非常有用的 Pandas 函数。...它计算列中值的累积和。以下是我们通常的使用方式: df["cumulative_sum"] = df["amount"].cumsum() df.head() 这样就获得了金额列值的累积总和。...但是它只是全部的总和没有考虑分类。在某些情况下,我们可能需要分别计算不同类别的累积和。 Pandas中我们只需要按类列对行进行分组,然后应用 cumsum 函数。...df["class_cum_sum"] = df.groupby("class")["amount"].cumsum() 让我们查看 A 类的结果。

    1.8K30
    领券