python 用pandas实现数据透视表功能
透视表是一种可以对数据动态排布并且分类汇总的表格格式。对于熟练使用 excel 的伙伴来说,一定很是亲切!
pd.pivot_table() 语法:
pivot_table(data, # DataFrame values=None, # 值 index=None, # 分类汇总依据 columns=None, # 列 aggfunc='mean', # 聚合函数 fill_value=None, # 对缺失值的填充 margins=False, # 是否启用总计行/列 dropna=True, # 删除缺失 margins_name='All' # 总计行/列的名称 )
1、销量数据的透视
1.1 读入数据
import os import numpy as np import pandas as pd file_name = os.path.join(path, 'Excel_test.xls') df = pd.read_excel(io=file_name, # 工作簿路径 sheetname='透视表', # 工作表名称 skiprows=1, # 要忽略的行数 parse_cols='A:D' # 读入的列 ) df
1.2 数据透视
# 透视数据 df_p = df.pivot_table(index='客户名称', # 透视的行,分组依据 values='销量', # 值 aggfunc='sum' # 聚合函数 ) # 对透视表进行降序排列 df_p = df_p.sort_values(by='销量', # 排序依据 ascending=False # 是否升序排列 ) # 设置数值格式 df_p = df_p.round({'销量': 0}).astype('int') # 添加列 ks = df_p['销量']//100 df_p['重要程度'] = ['★'*k for k in ks] df_p
1.3 重新设置图示表的索引
df_p['客户名称'] = df_p.index df_p.set_index(keys=['重要程度', '客户名称'])
注:以上操作从理论和实践方面看都没什么问题,但模仿 excel 的痕迹浓重了些,更 python 的操作是用 groupby-applay 的方法。
2 用 分组聚合 实现数据透视
grouped = df.groupby(by='客户名称') grouped['销量'].agg('sum')
2.1 实现目标格式的透视表
# 分类汇总 df_p = df.groupby(by='客户名称' # 分类 ).agg('sum' # 汇总 ).sort_values(by='销量', ascending=False # 排序 ).round({'销量': 0} # 设置精度 ).astype('int') # 数据类型转换 # 添加列 ks = df_p['销量']//100 df_p['重要程度'] = ['★'*k for k in ks] df_p['客户名称'] = df_p.index # 层次索引 df_p.set_index(keys=['重要程度', '客户名称'])
软件信息:
以上就是python 用pandas实现数据透视表功能的详细内容,更多关于python pandas实现数据透视表的资料请关注我们其它相关文章!
相关推荐
-
Python基于pandas爬取网页表格数据
以网页表格为例:https://www.kuaidaili.com/free/ 该网站数据存在table标签,直接用requests,需要结合bs4解析正则/xpath/lxml等,没有几行代码是搞不定的. 今天介绍的黑科技是pandas自带爬虫功能,pd.read_html(),只需传人url,一行代码搞定. 原网页结构如下: python代码如下: import pandas as pd url='http://www.kuaidaili.com/free/' df=pd.read_html
-
Python数据分析:手把手教你用Pandas生成可视化图表的教程
大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事.但自从Python进入3.0时代以后,pandas的使用变得更加普及,它的身影经常见于市场分析.爬虫.金融分析以及科学计算中. 作为数据分析工具的集大成者,pandas作者曾说,pandas中的可视化功能比plt更加简便和功能强大.实际上,如果是对图表细节有极高要求,那么建议大家使用matplotlib通过底层图表模块进行编码.当然,我
-
python Pandas 读取txt表格的实例
运行环境 Python 2.7 操作实例 1.原始文本格式:空格分隔的txt,例如 2016-03-22 00:06:24.4463094 中文测试字符 2016-03-22 00:06:32.4565680 需要编辑encoding 2016-03-22 00:06:32.6835965 abc 2016-03-22 00:06:32.8041945 egb 2.pandas 读取数据 import pandas as pd data = pd.read_table('Z:/test.txt'
-
python的pandas工具包,保存.csv文件时不要表头的实例
用pandas处理.csv文件时,有时我们希望保存的.csv文件没有表头,于是我去看了DataFrame.to_csv的document. 发现只需要再添加header=None这个参数就行了(默认是True), 下面贴上document: DataFrame.to_csv(path_or_buf=None, sep=', ', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=Non
-
Python Pandas list列表数据列拆分成多行的方法实现
1.实现的效果 示例代码: df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2]]}) df Out[458]: A B 0 1 [1, 2] 1 2 [1, 2] 拆分成多行的效果: A B 0 1 1 1 1 2 3 2 1 4 2 2 2.拆分成多行的方法 1)通过apply和pd.Series实现 容易理解,但在性能方面不推荐. df.set_index('A').B.apply(pd.Series).stack().reset_ind
-
解决python pandas读取excel中多个不同sheet表格存在的问题
摘要:不同方法读取excel中的多个不同sheet表格性能比较 # 方法1 def read_excel(path): df=pd.read_excel(path,None) print(df.keys()) # for k,v in df.items(): # print(k) # print(v) # print(type(v)) return df # 方法2 def read_excel1(path): data_xls = pd.ExcelFile(path) print(data_x
-
Python3 pandas 操作列表实例详解
1.首先需要安装pandas, 安装的时候可能由依赖的包需要安装,根据运行时候的提示,缺少哪个库,就pip 安装哪个库. 2.示例代码 import pandas as pd from pandas import ExcelWriter EX_PATH = "E:\\code\\test2.xlsx" #读取excel里面的内容 data = pd.read_excel(EX_PATH,sheet_name='Sheet1') #新增加一列内容 lista = [21, 21, 20,
-
Python pandas实现excel工作表合并功能详解
import os,pandas as pd,re #1.获取文件夹下要合并的文件名 dirpath = '文件夹地址' #工作表3特殊处理 需要开始下标和结束下标 begin = 231 end = 238 excel_names = os.listdir(dirpath) #2.获取文件内容 sheet_1_merge = [] sheet_2_merge = [] sheet_3_merge = pd.DataFrame([0,0,0,0,0,0,0]) for excel_name in
-
python pandas生成时间列表
python生成一个日期列表 首先导入pandas import pandas as pd def get_date_list(begin_date,end_date): date_list = [x.strftime('%Y-%m-%d') for x in list(pd.date_range(start=begin_date, end=end_date))] return date_list ### 可以测试 print(get_date_list('2018-06-01','2018-0
-
python 用pandas实现数据透视表功能
透视表是一种可以对数据动态排布并且分类汇总的表格格式.对于熟练使用 excel 的伙伴来说,一定很是亲切! pd.pivot_table() 语法: pivot_table(data, # DataFrame values=None, # 值 index=None, # 分类汇总依据 columns=None, # 列 aggfunc='mean', # 聚合函数 fill_value=None, # 对缺失值的填充 margins=False, # 是否启用总计行/列 dropna=True,
-
Python+Pandas实现数据透视表
目录 导入示例数据 参数说明 常用操作 大家好,我是丁小杰. 对于数据透视表,相信对于 Excel 比较熟悉的小伙伴都知道如何使用它,并了解它的强大之处,而在pandas中要实现数据透视就要用到pivot_table了. 导入示例数据 首先导入演示的数据集. import pandas as pd df = pd.read_csv('销售目标.csv') df.head() 参数说明 主要参数: data:待操作的 DataFrame values:被聚合操作的列,可选项 index:行分组键,
-
pandas实现excel中的数据透视表和Vlookup函数功能代码
在孩子王实习中做的一个小工作,方便整理数据. 目前这几行代码是实现了一个数据透视表和匹配的功能,但是将做好的结果写入了不同的excel中, 如何实现将结果连续保存到同一个Excel的同一个工作表中? 还需要探索. import pandas as pd import numpy as np a = [1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1701,1702,1703,1704] for i in a: b = st
-
Python实现数据透视表详解
目录 1.groupby + agg 2. crosstab 3.groupby + pivot pivot_table 总结 用Python里的Pandas可以实现,虽然感觉Excel更方便 1.groupby + agg 不够直观,不好看 对贷款年份,贷款种类创建数据透视 train_data.groupby(['year_of_loan', 'class']).agg(d_roat =('isDefault', 'mean')) 2. crosstab pandas.crosstab(in
-
Pandas数据分析之pandas数据透视表和交叉表
目录 前言 整理透视 pivot 聚合透视 Pivot Table 聚合透视高级操作 交叉表crosstab() 数据融合melt() 数据堆叠 stack 前言 pandas对数据框也可以像excel一样进行数据透视表整合之类的操作.主要是针对分类数据进行操作,还可以计算数值型数据,去满足复杂的分类数据整理的逻辑. 首先还是导入包: import numpy as np import pandas as pd 整理透视 pivot 首先介绍的是最简单的整理透视函数pivot,其原理如图: pi
-
利用Javascript仿Excel的数据透视分析功能
什么是数据透视分析? 数据透视分析就是要在 不同维度对数据进行汇总,过滤,分析,比较,作图.用来发现数据的变化趋势和不同因素导致的差异. 这在销售,统计,金融 等方面十分有用,常常会在一些管理软件中使用. 接下来使用Excel介绍了什么是数据透视分析和数据透视表. 下面我使用 Excel的数据透视表 来分析 iPhone手机2013,2014 和2015 年在中国和美国的销售量数据,以总结iPhone手机的销售趋势. 申明:所有数据都是自己编造的,无任何参考价值. Excel 数据透视表和数据透
-
C#如何操作Excel数据透视表
一.概述 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行号.列标和页字段.当改变版面布置时,数据透视表也会按照新的布置来进行更新,可以说是一个功能强大的数据分析工具.因此,本篇文章将介绍在C# 中关于Excel数据透视表的操作示例,示例内容主要包含以下要点: 1. 创建透视表 (1)创建数据缓存 (2)创建数据透视表 (3)添加行字段和列字段 (4)添加值字段 (5)设置样式 2. 设置行折叠.展开 3.
-
MySQL/MariaDB 如何实现数据透视表的示例代码
前文介绍了Oracle 中实现数据透视表的几种方法,今天我们来看看在 MySQL/MariaDB 中如何实现相同的功能. 本文使用的示例数据可以点此下载. 使用 CASE 表达式和分组聚合 数据透视表的本质就是按照行和列的不同组合进行数据分组,然后对结果进行汇总:因此,它和数据库中的分组(GROUP BY)加聚合函数(COUNT.SUM.AVG 等)的功能非常类似. 我们首先使用以下 GROUP BY 子句对销售数据进行分类汇总: select coalesce(product, '[全部产品]
-
Python使用pandas对数据进行差分运算的方法
如下所示: >>> import pandas as pd >>> import numpy as np # 生成模拟数据 >>> df = pd.DataFrame({'a':np.random.randint(1, 100, 10),\ 'b':np.random.randint(1, 100, 10)},\ index=map(str, range(10))) >>> df a b 0 21
-
python使用pandas实现数据分割实例代码
本文研究的主要是Python编程通过pandas将数据分割成时间跨度相等的数据块的相关内容,具体如下. 先上数据,有如下dataframe格式的数据,列名分别为date.ip,我需要统计每5s内出现的ip,以及这些ip出现的频数. ip date 0 127.0.0.21 15/Jul/2017:18:22:16 1 127.0.0.13 15/Jul/2017:18:22:16 2 127.0.0.11 15/Jul/2017:18:22:17 3 127.0.0.11 15/Jul/2017
随机推荐
- Java源码解析之GenericDeclaration详解
- js将json格式的对象拼接成复杂的url参数方法
- js将类数组对象转换成数组对象
- 基于spring boot 的配置参考大全(推荐)
- 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
- python类中super()和__init__()的区别
- Python的Flask开发框架简单上手笔记
- ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
- Admin generator, filters and I18n
- C#创建WCF服务控制台应用程序详解
- 浅谈Viewpager和轮播图的冲突解决方法
- JavaScript Event学习第二章 Event浏览器兼容性
- JS用斜率判断鼠标进入DIV四个方向的方法
- Linux目录结构分解及意义和建议
- 用javascript实现图片马赛克后显示并切换
- 基于jquery实现状态限定编辑的代码
- jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
- 如何让IE和Netscape共享书签和收藏夹
- C语言连续子向量的最大和及时间度量实例
- PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析