首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

《Python for Excel》读书笔记连载12:使用pandas进行数据分析之理解数据

引言:本文为《Python for Excel》中第5章Chapter 5:Data Analysis with pandas部分内容,主要讲解了pandas如何对数据进行描述性统计,讲解了将数据聚合到子集两种方法...:groupby方法和pivot_table函数。...本节首先介绍pandas工作原理,然后介绍将数据聚合到子集两种方法:groupby方法和pivot_table函数。...为此,首先按洲对行进行分组,然后应用mean方法,该方法将计算每组均值,自动排除所有非数字: 如果包含多个,则生成数据框架将具有层次索引,即我们前面遇到多重索引: 可以使用pandas提供大多数描述性统计信息...它们引入了第二个维度,可以从不同角度查看数据。pandas还有一个数据透视表功能,将在下面介绍。

4.2K30

数智洞见 | 你双11优惠券领了吗?基于算法优惠券发放

通过算法模型,提升营销准确率 ——以某个面包店为例 1.业务目标 根据某面包店历史6个月用户交易记录,通过RFM模型对用户分群,建立模型预测用户购买概率,实现对不同用户群不同购买概率用户实行不同发券策略...)进行groupby对transcation(订单号)求nunique,得到每个用户历史交易次数; · 聚合函数_M:基于6个月交易数据,对user_id(用户id )进行groupby对price...(商品价格)求sum,得到每个用户历史交易总金额 · 聚合函数_R:基于6个月交易数据,对user_id(用户id )进行groupby对date(交易日期)取最大值,取得每个用户最后一次交易时间...7)输出发券用户列表 · Python脚本_目标用户:将KMeans类模型划分出属于“1”类别(重要价值客户:购买金额高、购买频率高、购买时间近),且XGB分类模型预测出来今天不会购买用户筛选出来...算法挖掘项目持续深耕数据智能化应用领域,目前已交付金融、政府、制造、地产等多个行业,感兴趣小伙伴欢迎联系。

1.5K30

python数据分析——数据分类汇总与统计

并且一次应用多个函数。 关键技术:对于自定义或者自带函数都可以用agg传入,一次应用多个函数。传入函数组成list。所有的都会应用这组函数。...使用read_csv导入数据之后,我们添加了一个小费百分比tip_pct: 如果希望对不同使用不同聚合函数,或一次应用多个函数,将通过下面的例来进行展示。...这里也可以传入带有自定义名称一组元组: 假设你想要对一个不同应用不同函数。...Apply函数会将待处理对象拆分成多个片段,然后对各片段调用传入函数,最后尝试将各片段组合到一起。 【例13】采用之前小费数据集,根据分组选出最高5个tip-pct值。...关键技术:假设你需要对不同分组填充不同值。可以将数据分组,使用apply和一个能够对各数据块调用fillna函数即可。

12910

小蛇学python(18)pandas数据聚合与分组计算

对数据集进行分组对各组应用一个函数,这是数据分析工作重要环节。在将数据集准备好之后,通常任务就是计算分组统计或生成透视表。...image.png 你一定注意到,在执行上面一行代码时,结果中没有key2,这是因为该内容不是数值,俗称麻烦,所以被从结果中排除了。...image.png 以下是按由多个键值构成元组分组情况 ? image.png 通过这两个操作分析得知,第一行打印出来是分组所根据键值,紧接是按照此分组键值或者键值对得到分组。...image.png 还有describe方法,严格来讲它不是类运算,它很好描述了一个数据集分组分布情况。 ? image.png 总结一下常用分组类函数。...image.png 经过以上操作,我们可以看出来,凡是key是按照one分组,如今在people列表里都变成了one里平均值。这时候我们再自定义函数。 ?

2.4K20

Pandas常用数据处理方法

对于层次化索引数据,我们必须以列表形式指明用作合并键多个: lefth = pd.DataFrame({'key1':['Ohio','Ohio','Ohio','Nevada','Nevada...如果希望对不同值进行不同替换,传入一个由替换关系组成列表或者字典即可: data = pd.Series([1,-999,2,-999,-1000,3]) data.replace(-999,np.nan...groupby默认是在axis=0上分组,不过我们也可以在axis=1上分组,比如根据数据类型进行分组: for name,group in df.groupby(df.dtypes,axis=1...方法是apply,apply将会待处理对象拆分成多个片段,然后对各片段调用传入函数,最后尝试将各片段组合到一起. def top(df,n=5,column='tip_pct'): return...4.3 数据透视表 透视表是各种电子表格程序和其他数据分析软件中一种常见数据汇总工具,它根据一个或多个键对数据进行聚合,根据行和分组键将数据分配到各个矩形区域中。

8.3K90

Python常用小技巧总结

others Python合并多个EXCEL工作表 pandas中Series和Dataframe数据类型互转 相同字段合并 Python小技巧 简单表达式 列表推导式 交换变量 检查对象使用内存情况...=[True,False]) # 先按col1升序排列,后按col2降序排列数据 df.groupby(col) # 返回⼀个按col进⾏分组Groupby对象 df.groupby([col1...,col2]) # 返回⼀个按多进⾏分组Groupby对象 df.groupby(col1)[col2].agg(mean) # 返回按col1进⾏分组后,col2均值,agg可以接受列表参数...进⾏分组,计算col2最⼤值和col3最⼤值、最⼩值数据透视表 df.groupby(col1).agg(np.mean) # 返回按col1分组所有均值,⽀持 df.groupby(..."]} df = pd.DataFrame(d) df customer sales 0 A 1000 1 B 950.5RMB 2 C $400 3 D $1250.75 sales数据类型不同

9.4K20

再见了!Pandas!!

查看数据基本信息 df.info() 使用方式: 提供DataFrame基本信息,包括每非空值数量和数据类型。 示例: 查看数据信息。 df.info() 5....选择多 df[['Column1', 'Column2']] 使用方式: 通过列名列表选择DataFrame中。 示例: 选择“Name”和“Age”。...AgeGroup'] = pd.cut(df['Age'], bins=[20, 30, 40, 50], labels=['20-30', '30-40', '40-50']) 使用方式: 使用cut函数将数值分成不同箱子...使用astype进行数据类型转换 df['NewColumn'] = df['Column'].astype(float) 使用方式: 使用astype将数据类型转换为指定类型。...使用explode展开列表 df.explode('ListColumn') 使用方式: 使用explode展开包含列表。 示例: 展开“Hobbies”列表

11110

50个超强Pandas操作 !!

查看数据基本信息 df.info() 使用方式: 提供DataFrame基本信息,包括每非空值数量和数据类型。 示例: 查看数据信息。 df.info() 5....AgeGroup'] = pd.cut(df['Age'], bins=[20, 30, 40, 50], labels=['20-30', '30-40', '40-50']) 使用方式: 使用cut函数将数值分成不同箱子...使用astype进行数据类型转换 df['NewColumn'] = df['Column'].astype(float) 使用方式: 使用astype将数据类型转换为指定类型。...使用explode展开列表 df.explode('ListColumn') 使用方式: 使用explode展开包含列表。 示例: 展开“Hobbies”列表。...使用agg进行多个聚合操作 df.groupby('GroupColumn').agg({'Column1': 'mean', 'Column2': ['min', 'max']}) 使用方式: 使用agg

26010

groupby函数详解

1 groupby()核心用法 (1)根据DataFrame本身某一或多内容进行分组聚合,(a)若按某一聚合,则新DataFrame将根据某一内容分为不同维度进行拆解,同时将同一维度再进行聚合...(2)groupby(),根据分组键不同,有以下4种聚合方法: 分组键为Series (a)使用原df子列作为Series df.groupby([ df[‘key1’], df[‘key2’]...) 按key1、key2进行分组,计算data1平均值,聚合表不堆叠 #将数据从“花括号”格式转为“表格”格式,unstack即“不要堆叠” df2=df['data1'].groupby([df...,根据dtypes对进行分组,此时,需指定axis=1,否则,groupby默认根据axis=0进行分组,而行数据由于类型不统一,故无法根据dtypes对进行分组 #df.dtypes用于确定df数据类型...、字典、Series组合作为分组键,进行聚合 key_list=['one','one','one','two','two'] #自定义列表,默认列表字符串顺序和df顺序一致 people.groupby

3.4K11

pandas技巧4

pd.ExcelWriter('test.xlsx',index=False) # 然后调用df1.to_excel(writer,sheet_name='单位') 和 writer.save(),将多个数据帧写入同一个工作簿多个...df.info() # 查看索引、数据类型和内存信息 df.columns() # 查看字段(首行)名称 df.describe() # 查看数值型汇总统计 s.value_counts(dropna...() # 检查DataFrame对象中空值,返回一个Boolean数组 pd.notnull() # 检查DataFrame对象中非空值,返回一个Boolean数组 df.dropna() #...([col1,col2], ascending=[True,False]) #先按col1升序排列,后按col2降序排列数据 df.groupby(col) # 返回一个按col进行分组Groupby...对象 df.groupby([col1,col2]) # 返回一个按多进行分组Groupby对象 df.groupby(col1)[col2].agg(mean) # 返回按col1进行分组后,

3.4K20

【小白必看】Python爬虫数据处理与可视化

datas 使用pandas.DataFrame()方法将二维列表转换为DataFrame对象df,每分别命名为'类型'、'书名'、'作者'、'字数'、'推荐' 将'推荐'数据类型转换为整型 数据统计与分组...类型'进行分组,使用count()方法统计每个分组数量 数据可视化 font_path = 'caisemenghuanjingyu.ttf' # 替换为自定义字体文件路径 custom_font...,创建FontProperties对象custom_font 使用hist()方法绘制'类型'直方图 使用xlabel()方法设置x轴标签,使用自定义字体 使用show()方法显示图形 数据筛选与排序...authors, counts, nums): # 使用zip()函数将多个列表按元素进行配对 datas.append([t, name, author, count[:-1], num...('int') # 将推荐数据类型转换为整型 df.describe() # 使用describe()方法获取数据统计描述信息 df.groupby('类型').count() # 使用groupby

8910

总结了67个pandas函数,完美解决数据处理,拿来即用!

数据类型和内存信息 df.columns() # 查看字段(⾸⾏)名称 df.describe() # 查看数值型汇总统计 s.value_counts(dropna=False) # 查看...() # 检查DataFrame对象中⾮空值,返回⼀个Boolean数组 df.dropna() # 删除所有包含空值⾏ df.dropna(axis=1) # 删除所有包含空值 df.dropna...col2降序排列数据 df.groupby(col) # 返回⼀个按col进⾏分组Groupby对象 df.groupby([col1,col2]) # 返回⼀个按多进⾏分组Groupby对象...df.groupby(col1)[col2].agg(mean) # 返回按col1进⾏分组后,col2均值,agg可以接受列表参数,agg([len,np.mean]) df.pivot_table...、最⼩值数据透视表 df.groupby(col1).agg(np.mean) # 返回按col1分组所有均值,⽀持 df.groupby(col1).col2.agg(['min','max

3.5K30

(数据科学学习手札69)详解pandas中map、apply、applymap、groupby、agg

groupby()、agg()等方法展开详细介绍,结合实际例子帮助大家更好地理解它们使用技巧(本文使用到所有代码及数据均保存在我github仓库:https://github.com/CNFeffery...#查看各数据类型、数据框行列数 print(data.dtypes) print() print(data.shape) ?...● 多数据   apply()最特别的地方在于其可以同时处理多数据,譬如这里我们编写一个使用到多数据函数用于拼成对于每一行描述性的话,并在apply()用lambda函数传递多个值进编写好函数中...当变量为1个时传入名称字符串即可,当为多个时传入这些变量名称列表,DataFrame对象通过groupby()之后返回一个生成器,需要将其列表化才能得到需要分组后子集,如下面的示例: #按照年份和性别对婴儿姓名数据进行分组...值得注意是,因为上例中对于不同变量聚合方案不统一,所以会出现NaN情况。

4.9K60

数据导入与预处理-第6章-02数据变换

基于值重塑数据(生成一个“透视”表)。使用来自指定索引/唯一值来形成结果DataFrame轴。此函数不支持数据聚合,多个值将导致MultiIndex。...,这一过程中主要对各分组应用同一操作,并把操作后所得结果整合到一起,生成一组新数据。...通过列表生成器 获取DataFrameGroupBy数据: # 通过列表生成器 获取DataFrameGroupBy数据 result = dict([x for x in groupby_obj...: # 根据列表对df_obj进行分组,列表中相同元素对应行会归为一组 groupby_obj = df_obj.groupby(by=['A', 'A', 'B', 'B', 'A', 'B'])...,又接收自定义函数,甚至可以同时运用多个方法或函数,或给各分配不同方法或函数,能够对分组应用灵活聚合操作。

19.2K20

不再纠结,一文详解pandas中map、apply、applymap、groupby、agg...

本文就将针对pandas中map()、apply()、applymap()、groupby()、agg()等方法展开详细介绍,结合实际例子帮助大家更好地理解它们使用技巧。...#查看各数据类型、数据框行列数 print(data.dtypes) print() print(data.shape) ?...2.1 map() 类似Python内建map()方法,pandas中map()方法将函数、字典索引或是一些需要接受单个输入值特别的对象与对应单个每一个元素建立联系串行得到结果。...当为多个时传入这些变量名称列表,DataFrame对象通过groupby()之后返回一个生成器,需要将其列表化才能得到需要分组后子集,如下面的示例: #按照年份和性别对婴儿姓名数据进行分组 groups...值得注意是,因为上例中对于不同变量聚合方案不统一,所以会出现NaN情况。

4.9K10

Python 学习小笔记

这是我在入门Python时候边学边记一些小笔记 字符串 字符串不能被更新 数据集 里面的元素都可以是不同数据类型 都可以被索引和切片 查看一个变量数据类型使用type(obj)方法...如type(tup1) 列表 列表使用[]括起来,里面的元素可以是不同数据类型,中间用逗号隔开 列表可以被更新 listA=[1,2,3,4,5] 元组 元组使用()括起来,元组不可以被更新...可用 对数据分组进行计算,比如计算分组平均数等 有点类似于数据库中groupby计算,涉及至少两数据,用法有两种(例 要对A根据B进行分组计算平均值) 1....先访问单独A,对它进行.groupby(B).mean() >>>data['A'].groupby(['B']).mean() 2....对整个dataframe进行groupby,然后访问Amean() >>>data.groupby(['B'])['A'].mean() dataframe中axis意义 这里有一篇博客说很详细

96230

不再纠结,一文详解pandas中map、apply、applymap、groupby、agg...

本文就将针对pandas中map()、apply()、applymap()、groupby()、agg()等方法展开详细介绍,结合实际例子帮助大家更好地理解它们使用技巧。...as pd #读入数据 data = pd.read_csv('data.csv') data.head() #查看各数据类型、数据框行列数 print(data.dtypes) print(...不同是applymap()将传入函数等作用于整个数据框中每一个位置元素,因此其返回结果形状与原数据框一致。...当为多个时传入这些变量名称列表,DataFrame对象通过groupby()之后返回一个生成器,需要将其列表化才能得到需要分组后子集,如下面的示例: #按照年份和性别对婴儿姓名数据进行分组 groups...= data.groupby(by=['year','gender']) #查看groups类型 type(groups) 可以看到它此时是生成器,下面我们用列表解析方式提取出所有分组后结果:

4K30

Power BI: 理解SUMMARIZE

类是基于用于分组创建分区。SUMMARIZE 首先根据颜色对表进行类,然后通过创建筛选上下文来计算每个表达式。...在我们场景中,Sales[Color] 是集群标头。簇头是 SUMMARIZE groupby 部分中使用一组。簇头可以包含多,当前场景中我们只有一。...这表明 Sales[Quantity] 正在被主动筛选,即使它没有出现在 groupby 任何地方。...在评估新期间,SUMMARIZE 对集群进行迭代生成: 包含簇头行上下文; 一个筛选上下文,包含集群中所有,包括集群标题。 这种独特行为给本来就很复杂函数增加了一些混乱。...实际上,以下查询会生成一个颜色列表,在所有中复制相同颜色名称: Product_Color = SUMMARIZE ( Sales1, 'Product'[Color],

67130
领券