首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    在有些时候,我们需要统计连续登录N天或以上用户,这里采用python通过分组排序、分组计数等步骤实现该功能,具体如下: 导入需要的库 import pandas as pd import numpy as...pd.to_datetime(df["@timestamp"]) #将日期列转化为 时间格式 第三步,分组排序 分组排序是指将每个用户登录日期进行组内排序 采用groupby方法结合rank方法进行处理...第五步,分组计数 通过上一步,我们可以知道,计算每个用户date_sub列出现的次数即可算出该用户连续登录的天数 data = df.groupby(['role_id','date_sub']).count...().reset_index() #根据用户id和上一步计算的差值 进行分组计数 ?...'] - pd.to_timedelta(df['辅助列'],unit='d') #计算登录日期与组内排序的差值(是一个日期) data = df.groupby(['role_id','date_sub

    4.5K30

    pandas - 一个强大的Python数据分析工具包

    高效的分组与聚合:类似 SQL 的 group by 功能,可按任意维度对数据分组,并快速计算均值、求和、计数等统计指标。...,支持绘图和数据格式化输出 Excel处理:xlrd、xlsxwriter、openpyxl,支持读写各类Excel文件 SQL数据库:SQLAlchemy、psycopg2、pymysql,支持连接PostgreSQL...df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d') # 指定日期格式 # 提取时间特征 df['年'] = df['日期'].dt.year...('日期').resample('M')['销售额'].sum() # 按月汇总销售额 9、数据分组与聚合(groupby) # 基础分组聚合 df.groupby('城市')['年龄'].mean()...' # 薪资的总和 }) # 分组后转换(保留原数据结构) df['城市平均年龄'] = df.groupby('城市')['年龄'].transform('mean') 10

    1.7K10

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

    关于hive的安装和配置,我在之前的文章MacOS 下hive的安装与配置提到过,不过仅限于mac版本,供参考,如果你觉得比较困难,可以考虑使用postgreSQL,它比MySQL支持更多的函数(不过代码可能需要进行一定的改动...SQL中有substr函数,它在MySQL和Hive中的用法是一样的substr(string A,int start,int len)表示从字符串A中截取起始位置为start,长度为len的子串,其中起始位置从...,同时计算所有日期的订单数,此处我们仅仅是为了演示两种操作的结合。...第三步再进行去重计数操作。...实现的Hive SQL代码如下,可以看到,每个uid都会有一个从1开始的计数,这个计数是按时间倒序排的。

    3.5K20

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

    思路1:按时间排序求差值再分组计数 才哥上次的解法就是这种思路,回看当初的代码显得比较稚嫩,今天我们看看小明哥的解法,非常精彩。...图5:辅助列 步骤3:分组计数获得连续天数,分组求最小最大值获得连续 污染起止日期 t.groupby(groupids).agg({ 'time': lambda x:f'{x.min()}~...图7:辅助列值预览 我们可以发现,按照辅助列分组进行计数即可获得连续污染天数,如上红色标记区域。...图9:辅助列创建思路预览 我们也可以发现,按照辅助列分组计数即可获取空气质量连续天数(优良和污染均可),如上红色区域。...= aqi.空气质量).cumsum()) # 辅助列 .time.agg(['count','min','max']) # 计数及获取日期区间 .nlargest(5,'count')

    8.9K11

    pandas基础:使用Python pandas Groupby函数汇总数据,获得对数据更好地理解

    注意,在read_cvs行中,包含了一个parse_dates参数,以指示“Transaction Date”列是日期时间类型的数据,这将使以后的处理更容易。...类型的另一种方法是使用以下命令: df['Transaction Date'] =pd.to_datetime(df['Transaction Date']) 下面的快速检查显示有533行/交易,有交易日期...在下面的示例中,我们首先按星期几对数据进行分组,然后指定要查看的列——“Debit(借方)”,最后对分组数据的“Debit”列执行操作:计数或求和。...如果只是将其打印出来,则很难想象该对象是什么: 图9 好消息是,我们可以迭代GroupBy对象来查看其中的内容。完整的输出太长,所以这里只显示其中一些: 图10 注意到这个项目周围的括号了吗?...例如,属性groups为我们提供了一个字典,其中包含属于给定组的行的组名(字典键)和索引位置。 图12 要获得特定的组,简单地使用get_group()。

    7.2K50

    SQL 聚合函数详解:COUNT、SUM、AVG、MIN、MAX

    :处理多行数据,返回一个汇总值自动忽略NULL:大多数聚合函数会自动忽略NULL值与GROUPBY结合:可以按组进行汇总适用范围广:MIN和MAX可用于数字、字符串、日期等多种数据类型COUNT:计数行和值...;关键区别:COUNT(*):计数所有行,包括包含NULL的行COUNT(column):只计数该列中非NULL的行COUNT(DISTINCTcolumn):计数该列中唯一的非NULL值交互式示例:COUNT...=Alice:字母顺序最前的名字last_name_alpha=Eve:字母顺序最后的名字关键点:MIN和MAX适用于数字、字符串、日期等多种数据类型对于字符串,按字母顺序比较对于日期,按时间顺序比较结合...GROUPBY使用聚合函数聚合函数与GROUPBY结合使用时会更加强大。...COALESCE确保非NULL结果结合GROUPBY使用可以进行分组汇总使用HAVING过滤聚合结果现在,去尝试这些函数吧!

    1.2K10

    Pandas三百题

    df.sample(5) 3 查看数据前后5行 df.head() df.tail() 4-查看数据基本信息 看看数据类型,有误缺失值什么的 df.info() 5-查看数据统计信息|数值 查看数值型列的统计信息,计数...,均值 df.describe().round(2).T 6-查看数据统计信息|离散 查看离散型列的统计信息,计数,频率 df.describe(include=['O']) 7-查看数据统计信息|整体...style.background_gradient(cmap='coolwarm').set_precision(2) ### 方法二 ### 借助 `matplotlib` 和 `seaborn` 其中中文设置可以参考我的这篇文章...("district")['companySize'].value_counts()).rename_axis(["行政区", "公司规模"]) 6 - 分组统计|计数 计算上一题,每个区出现的公司数量...margins=True) 9 - 数据透视|筛选 在上一题的基础上,查询 「类别」 等于 「办公用品」 的详情 ​ 10 -数据透视|逆透视 逆透视就是将宽的表转换为长的表,例如将第 5 题的透视表进行逆透视,其中不需要转换的列为

    6.4K22

    人工智能之数据分析 Pandas:第四章 常用函数

    数据类型df.dtypes每列 dtype内存与非空统计df.info()包含缺失值、内存占用描述性统计df.describe()数值列的均值、std、分位数等唯一值数量df.nunique()每列去重计数全表转置...基础聚合df.groupby('部门')['工资'].mean()df.groupby('部门').agg({'工资': 'mean', '姓名': 'count'})2....常用聚合函数函数说明'sum', 'mean', 'median'求和、均值、中位数'min', 'max'极值'std', 'var'标准差、方差'count'非空计数'nunique'唯一值数量'first...str + '@company.com'df[df['城市'].str.contains('京')] # 正则匹配df['首字'] = df['姓名'].str[0]时间序列(.dt 访问器)df['日期...'] = pd.to_datetime(df['日期'])df['年'] = df['日期'].dt.yeardf['月份'] = df['日期'].dt.monthdf['工作日'] = df['日期

    92501

    妈妈再也不用担心我忘记pandas操作了

    ) # 从SQL表/库导入数据 pd.read_json(json_string) # 从JSON格式的字符串导入数据 pd.read_html(url) # 解析URL、字符串或者HTML文件,抽取其中的...my_list) # 从可迭代对象my_list创建一个Series对象 df.index = pd.date_range('1900/1/30', periods=df.shape[0]) # 增加一个日期索引...df.info() # 查看索引、数据类型和内存信息 df.describe()# 查看数值型列的汇总统计 s.value_counts(dropna=False) # 查看Series对象的唯一值和计数...df.apply(pd.Series.value_counts) # 查看DataFrame对象中每一列的唯一值和计数 数据选取: df[col] # 根据列名,并以Series的形式返回列 df[[...(col) # 返回一个按列col进行分组的Groupby对象 df.groupby([col1,col2]) # 返回一个按多列进行分组的Groupby对象 df.groupby(col1)[col2

    3.4K31

    Python进行数据分析Pandas指南

    其中,Pandas是Python中最常用的数据分析库之一,而Jupyter Notebook则是一个流行的交互式计算环境,可让用户在浏览器中创建和共享文档,其中包含实时代码、可视化和解释性文本。...pandas as pd​# 从CSV文件加载数据data = pd.read_csv('data.csv')​# 显示数据的前几行print("数据的前几行:")print(data.head())​# 统计数据的基本信息...print("\n数据的基本统计信息:")print(data.describe())​# 统计数据中不同类别的数量print("\n不同类别的数量:")print(data['category'].value_counts...cleaned_data.csv', index=False)print("已导出清洗后的数据到 cleaned_data.csv 文件")完整案例:分析销售数据假设我们有一份包含产品销售信息的CSV文件,其中包括日期...# 将日期列转换为日期时间类型sales_data_cleaned['Order Date'] = pd.to_datetime(sales_data_cleaned['Order Date'])# 提取年份和月份信息

    3.1K380

    R语言NLP案例:LDA主题文本挖掘优惠券推荐网站数据

    Groupon标题 分类信息 交易位置 总评分数 作者日期 评论网址 print(all_groupon_reviews[all_groupon_reviews.content.apply(lambda...我们通过检查评论提供的日期来发现这一点。看下面的图像,其中x轴表示月/年和y轴,表示计数,这个结论变得明显。最后的小幅下滑是由于当时的一些小组可能是季节性的。 ?...我们通过检查评论提供的日期来发现这一点。看下面的图像,其中x轴表示月/年和y轴,表示计数,这个结论变得明显。最后的小幅下滑是由于当时的一些小组可能是季节性的。...pie_chart_df = Groupons.groupby('categories').agg('count') plt.rcParams['figure.figsize'] = (8,8)...上面的可视化是将主题投影到两个组件上,其中相似的主题会更接近,而不相似的主题会更远。右边的单词是组成每个主题的单词, 结论 主题建模是无监督学习的一种形式,这个项目的范围是在基础词语背后发现模型。

    77310

    Pandas速查手册中文版

    connection_object):从SQL表/库导入数据 pd.read_json(json_string):从JSON格式的字符串导入数据 pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的...pd.Series(my_list):从可迭代对象my_list创建一个Series对象 df.index = pd.date_range('1900/1/30', periods=df.shape[0]):增加一个日期索引...:// df.info() :查看索引、数据类型和内存信息 df.describe():查看数值型列的汇总统计 s.value_counts(dropna=False):查看Series对象的唯一值和计数...df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数 数据选取 df[col]:根据列名,并以Series的形式返回列 df[[col1,...(col):返回一个按列col进行分组的Groupby对象 df.groupby([col1,col2]):返回一个按多列进行分组的Groupby对象 df.groupby(col1)[col2]:返回按列

    15.2K92

    Python实战项目——餐厅订单数据分析(一)

    数据介绍 我们的数据是一个餐厅订单,其中包括detail_id,order_id,dishes_id等一系列餐厅数据。拥有3个sheet,数据项大约1w左右。...ID') plt.ylabel('消费单价') plt.title('订单消费单价前10') 一天当中什么时间段,点菜量比较集中(hour) data['hourcount'] = 1 # 新列,用作计数器...data['time'] = pd.to_datetime(data['place_order_time']) #将时间转换成日期类型存储 data['hour'] = data['time'].map...(lambda x:x.hour) gp_by_hour = data.groupby(by='hour').count()['hourcount'] gp_by_hour.plot(kind='bar...('点菜数量与日期的关系图') #拓展:排序,取点菜量最大的前5天 查看星期几人数最多,订餐数最多,映射数据到星期 data['weekcount'] = 1 data['weekday'] = data

    1.6K10

    Python连接MIMIC-IV数据库并图表可视化

    不同之处在于两点 数据读取方式: MIMICIII教程使用的直接读取csv文档的方式, 我们这里连接数据 数据和代码更新:因mimic-iv数据表更新了很多,所以可视化代码也需要更新  数据来源:PostgreSQL...用你自己创建的用户名, 一般默认是rootpassword = "mimic"# 密码,用你自己创建的密码query_schema = 'set search_path to '+schema_name+';' 连接PostgreSQL...dod:社会保障数据库中记录的死亡日期 我们可以使用pandas包自带的总结信息函数来查看数据集的统计信息,也可以使用pandas profiling来直接生成升级版的报告查看。...host='', port=5432) 二、 数据可视化 现在,我们来用这些数据集创建可视化的图表 import matplotlib.pyplot as plt%matplotlib inline 我们从PostgreSQL...患者住院类型的住院时间分布 我们再从PostgreSQL数据库读取表mimiciv_hosp.admissions的数据 患者在住院的时候患者的婚姻状况:离异(divorced)、已婚(married)

    1.4K10
    领券