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

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

我们第72篇原创 作者:才哥 ---- ☆ 大家好,我是才哥。 最近在处理数据时候遇到一个需求,核心就是求取最大连续行为天数。...类似需求在去年笔者刚接触pandas时候也做过《利用Python统计连续登录N天或以上用户》,这里我们可以用同样方法进行实现。...图2:akshare数据预览 由于我们只需要用到aqi,并按照国际标准进行优良与污染定级,这里简单做下数据处理如下:(后台直接回复0427获取数据是处理后数据哈) import pandas as...图4:筛选空气质量污染数据 步骤2:新增辅助列(辅助列可以不用加到原数据t上) 这里逻辑大概如下: 辅助排名列(按照时间顺序排序)为间隔天数 然后用时间字段(time)与间隔天数求差值得到一个日期...如果得到这个日期相同,则这几天是连续污染天 groupids = pd.to_datetime(aqi.time)-pd.to_timedelta(aqi.time.rank(),unit='d')

7.1K11

数据分析利器 pandas 系列教程(五):合并相同结构 csv

这是 月小水长 第 122 篇原创干货 距离上一篇 pandas 系列教程:数据分析利器 pandas 系列教程(四):对比 sql 学 pandas 发布已经过去大半年,近来才记起以前开了这样一个坑...,本篇是本系列 pandas 实战 tricks 首篇,不求大而全,力争小而精。...大家可能经常会有这样需求,有很多结构相同 xlsx 或者 csv 文件,需要合并成一个总文件,并且在总文件中需要保存原来子文件名,一个例子就是合并一个人所有微博下所有评论,每条微博所有评论对应一个...只要某文件夹下所有的 csv 文件结构相同,在文件夹路径运行以下代码就能自动合并,输出结果在 all.csv ,结果 csv 在原有的 csv 结构上新增一列 origin_file_name,值为原来...github.com/inspurer # website https://buyixiao.github.io/ # 微信公众号 月小水长 import os import pandas

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

如何在 Pandas 中创建一个空数据并向其附加行和列?

Pandas是一个用于数据操作和分析Python库。它建立在 numpy 库之上,提供数据有效实现。数据是一种二维数据结构。在数据中,数据以表格形式在行和列中对齐。...它类似于电子表格或SQL表或R中data.frame。最常用熊猫对象是数据。大多数情况下,数据是从其他数据源(如csv,excel,SQL等)导入到pandas数据。...ignore_index 参数用于在追加行后重置数据索引。concat 方法第一个参数是要与列名连接数据列表。 ignore_index 参数用于在追加行后重置数据索引。...Pandas 库创建一个空数据以及如何向其追加行和列。...我们还了解了一些 Pandas 方法、它们语法以及它们接受参数。这种学习对于那些开始使用 Python 中 Pandas 库对数据进行操作的人来说非常有帮助。

20030

电商用户复购实战:图解 pandas 移动函数 shift

这个案例综合性很强,除了需要掌握shift函数,你还会复习到以下pandas多个函数使用技巧,建议认真阅读、理解并收藏,欢迎点赞呀~ 分组统计:groupby 过滤筛选数据:query 排序函数:sort_values...: 参数fill_value 移动之后缺失值填充数据 参数freq 表示移动频率,专门用于时间序列移动中 频率 时间序列变化频率有间隔相同,也有不同。...每位用户平均复购周期:每两个复购时间之间天数之和 / 用户总复购次数 全部用户平均复购周期:全部用户平均复购周期之和 / 总复购用户数 通过一个例子来解释用户平均复购周期,假设某位用户购买情况如下...那么张三平均复购周期:(6+3+8+10)/ 4 = 6.75 2、模拟数据 模拟了一份电商数据,多位用户购买了一次或者多次: 下面通过Pandas来求解每位用户平均复购周期和全部平均复购周期...apply函数来获取timedelta64[ns]days属性,也就是对一个天数 10、统计每个复购用户复购总天数和总次数 df7 = df6.groupby("姓名").agg({"天":"sum

1.8K20

嘀~正则表达式快速上手指南(下篇)

将转换完字符串添加到 emails_dict 字典中,以便后续能极其方便地转换为pandas数据结构。 在步骤3B中,我们对 s_name 进行几乎一致操作. ?...将标题从邮件内容中分离出来是非常复杂任务,尤其当文中有很多不同形式标题。...如果你在家应用时打印email,你将会看到实际email内容。 使用 pandas 处理数据 如果使用 pandas 库处理列表中字典 那将非常简单。每个键会变成列名, 而键值变成行内容。...我们需要做就是使用如下代码: ? 通过上面这行代码,使用pandasDataFrame() 函数,我们将字典组成 emails 转换成数据,并赋给变量emails_df. 就这么简单。...我们已经拥有了一个精致Pandas数据,实际上它是一个简洁表格,包含了从email中提取所有信息。 请看下数据前几行: ?

4K10

Pandas 秘籍:6~11

检查索引对象 如第 1 章,“Pandas 基础”中所讨论,序列和数据每个轴都有一个索引对象,用于标记值。 有许多不同类型索引对象,但是它们都具有相同共同行为。...最终结果是一个数据,其列与原始列相同,但过滤掉了不符合阈值状态中行。 由于过滤后数据标题可能与原始标题相同,因此您需要进行一些检查以确保操作成功完成。...Pandas 提供给您主要整洁工具是数据方法stack,melt,unstack和pivot。 较复杂整理工作涉及撕裂文本,这需要str访问器。...更多 可以使用groupby聚合复制更复杂数据透视表。...默认情况下,concat函数使用外连接,将列表中每个数据所有行保留在列表中。 但是,它为我们提供了仅在两个数据中保留具有相同索引值选项。 这称为内连接。

33.8K10

交通-地铁客流量python时间序列预测

并且我们发现,预测客流量并不是一个直观字段,因此需要我们自己对其进行整理。建立ipython文件Traffic_dataAnalysis。先用pandas库读取csv数据: ?...客流量并没有出现在字段中,由题目要求得知,每个站点日客流量是交易类型21,22之和,因此客流量实际上就是对应行和。因此我们选择用python进行作图,来判断字段之间联系和影响。 ?...这时开始继续分析数据: ? 该函数能提取相应TRADE_ADDRESS时间序列数据,及每天平均连接数。 ? 绘图结果如下,可以看出有存在异常天数。 ?...所以需要写如下函数将异常日子过滤掉,此处过滤策略是:对每月特定时间段天数数据求均值与标准差,然后将均值与标准差落在10%分位数以下和90%分位数以上日子去除。 ? 去除后序列如下: ?...将异常天数筛选出来后,保留剩余天数所对应数据,并且将异常天数对应日客流量取每月正常天数客流量均值,使得模型能更好拟合。这样我们便得到了新数据集,保存在data_final文件夹中。

3.4K43

懂Excel轻松入门Python数据分析包pandas(二十四):连续区域

后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 本系列上一节已经介绍了最简单 shift 方法应用,这一节将结合其他技巧,解决诸如"某城市一年最大连续没下雨天数...Excel 中实现方式直观简单 如下一份简单记录表: - 需要根据这份数据,得到最长连续下雨天数是多少,是几号到几号 - 上图红框是一部分符合条件,其中最长红框是需要结果 按照惯例,先看看如果在...为1,False 为0 - G列:累计求和,上图可直接看到 G2 单元格公式,不多说了 - 注意看 G列 内容,相当于根据 C列内容,相同连续值被划分到一个独立编号 - 接下来只需要条件筛选+...分组统计,即可简单求出结果 后面的条件筛选+分组不再用 Excel 操作了(因为操作比较麻烦) pandas对应实现 现在关键是怎么在 pandas 中完成上述 Excel 中操作,实际非常简单...: - 行4:筛选下雨条件 - 行6:先对 df 过滤下雨行,按 diff_nums 分组统计 - 结果是一下子统计出各个连续下雨天数与日期范围 结果是需要得到其中 count 列最大值

1.3K30

懂Excel轻松入门Python数据分析包pandas(二十四):连续区域

后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 本系列上一节已经介绍了最简单 shift 方法应用,这一节将结合其他技巧,解决诸如"某城市一年最大连续没下雨天数...Excel 中实现方式直观简单 如下一份简单记录表: - 需要根据这份数据,得到最长连续下雨天数是多少,是几号到几号 - 上图红框是一部分符合条件,其中最长红框是需要结果 按照惯例,先看看如果在...为1,False 为0 - G列:累计求和,上图可直接看到 G2 单元格公式,不多说了 - 注意看 G列 内容,相当于根据 C列内容,相同连续值被划分到一个独立编号 - 接下来只需要条件筛选+...分组统计,即可简单求出结果 后面的条件筛选+分组不再用 Excel 操作了(因为操作比较麻烦) pandas对应实现 现在关键是怎么在 pandas 中完成上述 Excel 中操作,实际非常简单...: - 行4:筛选下雨条件 - 行6:先对 df 过滤下雨行,按 diff_nums 分组统计 - 结果是一下子统计出各个连续下雨天数与日期范围 结果是需要得到其中 count 列最大值

1.1K30

Pandas 秘籍:1~5

所有这三个对象都使用索引运算符来选择其数据数据是更强大,更复杂数据容器,但它们也使用索引运算符作为选择数据主要方式。 将单个字符串传递给数据索引运算符将返回一个序列。...该相同等于运算符可用于在逐个元素基础上将两个数据相互比较。...对于所有数据,列值始终是一种数据类型。 关系数据库也是如此。 总体而言,数据可能由具有不同数据类型列组成。 在内部,Pandas相同数据类型列一起存储在块中。...从某种意义上说,Pandas 结合了使用整数(如列表)和标签(如字典)选择数据能力。 选择序列数据 序列和数据复杂数据容器,具有多个属性,这些属性使用索引运算符以不同方式选择数据。...序列逻辑与数据逻辑稍有不同,实际上更为复杂。 由于其复杂性,最好避免在序列上仅使用索引运算符本身,而应使用显式.iloc和.loc索引器。

37.2K10

利用Python统计连续登录N天或以上用户

在有些时候,我们需要统计连续登录N天或以上用户,这里采用python通过分组排序、分组计数等步骤实现该功能,具体如下: 导入需要库 import pandas as pd import numpy as...np 第一步,导入数据 原始数据是一份csv文件,我们用pandas方法read_csv直接读取 df = pd.read_csv(r"C:\Users\Gdc\Documents\登录日志.csv...第二步,数据预处理 数据预处理方面我们需要做工作有三部分 时间只取日期,去掉时间部分 我们使用info方法可以发现,时间字段格式是object,并非时间格式 ?...删除日志里重复数据(同一天玩家可以登录多次,故而只需要保留一条即可) 我们看到上面处理过数据,可以发现role_id为570837202用户在1月8日存在多条记录,为方便后续计算,这里需要进行去重处理...第四步,计算差值 这一步是辅助操作,使用第三步中辅助列与用户登录日期做差值得到一个日期,若某用户某几列该值相同,则代表这几天属于连续登录 因为辅助列是float型,我们在做时间差时候需要用到to_timedelta

3.2K30

完整数据分析流程:Python中Pandas如何解决业务问题

这其中,数据分析师用得最多模块非Pandas莫属,如果你已经在接触它了,不妨一起来通过完整数据分析流程,探索Pandas是如何解决业务问题。...数据背景为了能尽量多地使用不同Pandas函数,我设计了一个古古怪怪但是实际中又很真实数据,说白了就是比较多不规范地方,等着我们去清洗。数据源是改编自一家超市订单,文末附文件路径。...导入所需模块import pandas as pd数据导入Pandas提供了丰富数据IO接口,其中最常用是pd.read_excel及pd.read_csv函数。...特征工程与数据清洗数据科学中有句话叫 "Garbage In, Garbage Out",意思是说如果用于分析数据质量差、存在许多错误,那么即使分析模型方法再缜密复杂,都不能变出花来,结果仍是不可用...表连接中on有两种方式,一种是两个表用于连接字段名是相同,直接用on即可,如果是不相同,则要用left_on, right_on进行。

1.6K30

Python批量处理Excel数据后,导入SQL Server

特殊数据数据处理 “1)日期天数转短日期 ” 这个有一定难度,excel里直接转很简单,直接选中需要转数据,然后在开始-数据格式栏选择短日期即可。...当时第一眼不知道其中转换规律,搜索了很久,也没发现有类似问题或说明,首先肯定不是时间戳,感觉总有点关系,最后发现是天数,计算出天数计算起始日期就可以解决其他数据转变问题啦。...首先我们要判断空值,然后设置日期天数计算起始时间,利用datetime模块timedelta函数将时间天数转变成时间差,然后直接与起始日期进行运算即可得出其代表日期。...我想法是,首先调用pandassort_values函数将所有数据根据日期列进行升序排序,然后,调用drop_duplicates函数指定按SOID列进行去重,并指定keep值为last,表示重复数据中保留最后一行数据...遍历读取Excel表数据利用了列表推导式,最后利用pandasconcat函数即可将对应数据进行合并。

4.5K30

Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、可视化

在进行投资和交易研究时,对于时间序列数据及其操作要有专业理解。本文将重点介绍如何使用Python和Pandas帮助客户进行时间序列分析来分析股票数据。...模块提供了在简单和复杂方式下进行日期和时间操作类。...Series.dt.daysinmonth 月份中天数。 Series.dt.days_in_month 月份中天数。 Series.dt.tz 返回时区(如果有)。...周期 print(df.dt.quarter) print(df.dt.day_name()) DatetimeIndex包括与dt访问器大部分相同属性和方法。...hours = pd.date_range('2019-01-01', periods=24, freq='H') print(hours) pandas.DataFrame.asfreq 返回具有新频率数据或序列

53100

敏捷开发项目人力工时评估法则

" 其实每个版本开发工期是有矩可循,一个新版本 功能接口、以及应用端界面,根据开发难度系数以及自身能力有评估公式 后端开发工时评估公式 单个接口工时 =  复杂度系数(1、2、3)* 2h...  例如A接口 2等复杂系数那就是单个工时4个小时 ;A接口 1等复杂系数那就是单个工时2个小时  ∑接口总工时=(单个接口工时+...相加之和) ∑接口总工时=(A接口+B接口...)...前端开发工时评估公式 移动端(APP+H5+小程序): 单个功能点(交互开发)工时 = 复杂度系数(1、2、3)* 1h ∑移动端功能= (单个功能点+...相加之和 ) PC端: 单个功能点(交互开发...)工时 = 复杂度系数(1、2、3)* 2.5h ∑PC端功能= ( 单个功能点+...相加之和 ) 测试工时评估公式 在开发总体工时清单列出来计算出来总和之后 测试工时=开发总体天数*0.8 (上下有...20%浮动可调) 例如开发10天,测试环境测试就是10*0.8=8天 上线可浮动1天期限7-9天 项目总体工时总和工时 版本总工时=开发总天数*2.5  整体项目时长包括验收以及相关上线总体都不能超过开发时长

1.9K20

Python判断连续时间序列范围并分组应用

最近在处理数据时候遇到一个需求,核心就是求取最大连续行为天数。 这里从数据库中导出监测设备数据离线预警日志,需求是找出各监测对象设备掉线最长持续多久并确定其离线时长。...图1:案例数据 以上某监测对象数据显示:最长离线天数从5月7日-5月10日持续4天。...案例数据较简单,大家可以自行虚拟构造演示数据集,定义字段相同即可。...整体思路如下: 构造日期天数辅助列(定义日期转天数函数) 然后用辅助列生成列表作为输入,构造时间序列处理函数生成可分段时间范围和天数 如果掉线天数与最大掉线天数相同,则这几天是最长连续离线日期范围(当然还可以求最近多少天内掉线情况...、连续掉线最长时间段等,根据需要增加过滤条件) 具体代码如下: import pandas as pd from itertools import groupby #日期-天数转换函数 def which_day

1.9K20

NumPy 和 Pandas 数据分析实用指南:1~6 全

它们并非全部或都包含相同索引。 我们稍后将使用这些序列,因此请记住这一点。 创建数据 序列很有趣,主要是因为它们用于构建 pandas 数据。...选择列名遵循与选择索引名相同规则。 让我们看看一些创建数据方法。 我们要做第一件事是创建数据,我们不会太在意它们索引。...我们可以使用apply函数来获取所需数量,但是使用数据提供现有方法通常更有用,并且也许更快。 让我们看一些使用数据演示。 与该序列一起使用许多技巧也可以与数据一起使用,但有些复杂。...处理 Pandas 数据丢失数据 在本节中,我们将研究如何处理 Pandas 数据丢失数据。 我们有几种方法可以检测对序列和数据都有效缺失数据。...我们也可以在创建 Pandas 序列或数据时隐式创建MultiIndex,方法是将列表列表传递给index参数,每个列表长度与该序列长度相同

5.3K30
领券