首页
学习
活动
专区
圈层
工具
发布

玩转Pandas透视表

第一个透视表 # 查看不同性别的存活率 table = pd.pivot_table(df, index=["sex"], values="survived") print(table)...; index是 Values to group by in the rows,也就是透视表建立时要根据哪些字段进行分组,我们这里只依据性别分组; values是指对哪些字段进行聚合操作,因为我们只关心不同性别下的存活率情况...,所以values只需要传入一个值"survived"; 将所有乘客按性别分为男、女两组后,对"survived"字段开始进行聚合,默认的聚合函数是"mean",也就是求每个性别组下所有成员的"survived...添加多个聚合列 # 按客票级别分组,每组对两个列进行聚合:“是否存活”和“船票价” table = pd.pivot_table(df, index=["pclass"], values=["survived...保存透视表 数据分析的劳动成果最后当然要保存下来了,我们一般将透视表保存为excel格式的文件,如果需要保存多个透视表,可以添加到多个sheet中进行保存。 save_file = ".

4.6K30

利用excel与Pandas完成实现数据透视表

1,制作数据透视表 制作数据透视表的时候,要确定这几个部分:行字段、列字段、数据区,汇总函数。数据透视表的结构如图1所示。...pivot_table方法的调用形式如下: DataFrame.pivot(index, columns, values, aggfunc) 其实index参数对应行字段,columns参数对应列字段,...=False, header=True).value 用pivot_table方法制作数据透视表,商品作为行字段,品牌作为列字段,销售额放在数据区,这样设置: pt1 = df.pivot_table(...图6 统计结果 这个数据透视表可以对利润和销售额进行不同的汇总计算,这时候aggfunc是字典类型,例如对销售额计算平均值,对利润计算总和,可以这样: pt5 = df.pivot_table(...图12 仅保留汇总数据某些行和列 3,使用字段列表排列数据透视表中的数据 数据透视表是一个DataFrame,所以可以用sort_values方法来按某列排序,示例代码如下: pt = df.pivot_table

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

    Python在Excel中创建与优化数据透视表的完整指南

    ("SalesData.xlsx")sheet = workbook.Worksheets[0]# 创建透视表缓存data_range = sheet.Range["A1:E1000"] # 假设数据有...")pivot_table = pv_sheet.PivotTables.Add("SalesAnalysis", pv_sheet.Range["A3"], cache)# 设置行列字段pivot_table.PivotFields...零售行业:门店销售分析需求:分析各门店不同品类的销售占比 解决方案:pivot = pd.pivot_table( df, index=["门店名称", "品类"], values="...金融行业:贷款风险评估需求:分析不同客户群体的逾期率 解决方案:# 计算逾期率df["逾期率"] = df["逾期金额"] / df["贷款金额"]pivot = pd.pivot_table(...自然语言生成透视表结合NLP技术,通过语音或文本指令创建透视表:# 示例指令:"按产品分类统计销售额,并计算利润率"def generate_pivot_from_query(query): if

    13110

    数据分析必备技能:数据透视表使用教程

    这个步骤本文不展开讨论,以下是我们作为分析来源的工作表数据: ?...下面用不同的方法加入两个自定义字段: 1.简单运算的公式 首先简单计算一下各队的场均进球数: 点击数据透视表中的任意位置,以激活“数据透视表分析” Ribbon 标签 点击“字段、项目和集”按钮,在弹出的下拉菜单中选择...6 成果 至此,我们得到了一个基于源数据的、可以自由组合统计维度、可以用多种方式筛选展示的数据透视表。 可以在 Ribbon 的“设计”菜单中选择预设的样式等,本文不展开论述。 ?...以上就是创建数据透视表的基本过程。 7 自动化创建 基本的数据透视表的创建和调整并不复杂,但如果有很多类似的重复性工作的话,使用一些简单的 VBA 来自动化这一过程,将极大提升工作的效率。...("A1").Select ' 创建透视表 Set pvtTable = sheet1.PivotTableWizard ActiveSheet.Name = "pivot1"

    6.3K20

    替代Excel Vba系列(一):用Python的pandas快速汇总

    案例 今天的例子非常简单,从一个表中读取学生的数据,然后按班级汇总各个科目的成绩。...同样,通过 book.sheets[] 快速访问工作表,可以使用索引也可以使用名字。 接下来读取表格数据 通过 sheet.range(地址) 即可访问单元格区域。...不过需求是不需要理会姓名,因此我们不处理。 [班级]列变成小数。其实是小数也不会影响结果。 数据透视 接下来就非常简单,直接使用 pandas 做出透视表。...使用 pd.pivot_table ,即可快速生成透视表。 其中参数 index ,则是结果左边的行分类字段——[班级]。 参数 margins ,表示生成一个汇总行。...pandas 中的 pivot_table 快速得到各种方式的分组汇总。

    1.1K40

    关于python读写excel表格的两三个例子

    1、上百个excel,都有同样的列名,比如局名称、局编码和序号以及其他列 2、要将这上百个文件按照局名称拆分成不同的文件 3、按照这些局名称统计数据量 4、统计表格中的总数据量,乍看起来,4和3是一样的...任务一、将表格按相应字段内容拆分成多个表格 # 对从系统中导出来的文件按照“局数据”中的分公司进行分割 # 这些文件有一个共同的特性,都有“局数据”字段,但分公司不完全都有数据 # 举例 # xxx.xlsx...“局名称”所在的列 xlsdatalist = [] # 暂存当前excel表的数据 sheettitle = [] # 暂储当前excel表的表头 # 根据excel的总行数开始遍历...开始写入数据 col += 1 row += 1 workbook.save(xlswritefile) 任务二、将表格按相应字段内容统计其数据量...# 默认读取前5行的数据 pivotdf = pd.pivot_table(df, index='局名称', values='序号', aggfunc='count') print(pivotdf

    1.1K30

    再见,Excel数据透视表;你好,pd.pivot_table

    至此,我们可以发现数据透视表中实际存在4个重要的设置项: 行字段 列字段 统计字段 统计方式(聚合函数) 值得指出的是,以上4个要素每一个都可以不唯一,例如可以拖动多个字段到行/列字段中形成二级索引,...也可完成对不同字段的统计,以及拖动相同字段设置不同统计方法实现多种聚合。...如果既需要统计不同性别各舱位下的生存人数(对应Survived=1),又想统计生存率(生存人数与该分组下总人数的比例),那么仅需在传入aggfunc参数时增加一个mean聚合函数即可: ?...那么二者的主要区别在于: pivot仅适用于数据变形,即由长表变为宽表,相当于对数据进行了重组;而pivot_table除了数据重组外,还有一个额外的效果,即数据聚合,即若重组后对应的行标签和列标签下取值不唯一...,此时按指定方法进行聚合;换言之,pivot能干的事情,pivot_table都能干,反之则不然。

    2.9K51

    基于纯前端类Excel表格控件实现在线损益表应用

    在此示例中,我们添加了 Account Group 列来表示报告的不同部分,并将包含数据的表命名为 tblIncome。...|GC.Spread.Pivot.PivotPanelSection.area); 现在拖放右侧区域的字段以构建数据透视表。...我们将使用计算字段功能在数据透视表中添加差异和差异百分比。 单击数据透视表分析。 字段、项目和集合 → 计算字段。 设置计算字段的名称差异。 要在公式中添加字段,请选择该字段,然后单击“插入字段”。...使用的公式如下: 添加切片器 切片器作为用于过滤数据透视表的新功能。使用此功能按地区和财政年度过滤数据。...SpreadJS 提供了许多不同的选项来根据应用程序的需要自定义数据透视表的外观和功能。

    4.4K40

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

    ='单位')和writer.save(),将多个数据帧写⼊同⼀个⼯作簿的多个sheet(⼯作表) 查看数据 这里为大家总结11个常见用法。...),但需要注意的是loc是按索引,iloc参数只接受数字参数 df.ix[[:5],["col1","col2"]] # 返回字段为col1和col2的前5条数据,可以理解为loc和 iloc的结合体...降序排列数据 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(index=...col1,values=[col2,col3],aggfunc={col2:max,col3:[ma,min]}) # 创建⼀个按列col1进⾏分组,计算col2的最⼤值和col3的最⼤值、最⼩值的数据透视表

    4.5K30

    数据透视表上线!如何在纯前端实现这个强大的数据分析功能?

    所谓数据透视表,就是将原始的明细数据表中涉及的各组关联数据进行分类汇总的产物。用户可以按照不同的组合方式对原始数据进行处理。...……等信息,并且透视表中包含哪些字段都是随意选择的。...例如我们只想统计各季度的销量和销售额: 这里就略过了售车品牌信息,对应的字段选择设置为: 我们还可以点开每个字段,选择需要显示的子内容,例如只看1-3季度的业绩,或者只看某位销售人员的业绩,等等。...图右侧的面板就是SpreadJS生成的数据透视面板,用户可以在这里调整所需的字段,从而改变左侧数据透视表的展示信息。...GC.Spread.Pivot.PivotPanel构造函数参数如下: 以下是使用标准JS代码嵌入数据透视表的app.js文件: window.onload = function () { var

    2.7K30

    从Excel到Python:最常用的36个Pandas函数

    2.清理空格 字符中的空格也是数据清洗中一个常见的问题 #清除city字段中的字符空格 df['city']=df['city'].map(str.strip) 3.大小写转换 在英文字段中,字母的大小写不统一也是一个常见的问题...4.数据分组 Excel中可以通过VLOOKUP函数进行近似匹配来完成对数值的分组,或者使用“数据透视表”来完成分组 Python中使用Where函数用来对数据进行判断和分组 #如果price列的值>3000...还可以对多个字段的值进行判断后对数据进行分组,下面的代码中对city列等于beijing并且price列大于等于4000的数据标记为1。...数据筛选 按条件筛选(与、或、非) Excel数据目录下提供了“筛选”功能,用于对数据表按不同的条 件进行筛选。 ? Python中使用loc函数配合筛选条件来完成筛选功能。...Python中通过pivot_table函数实现同样的效果 #设定city为行字段,size为列字段,price为值字段。 分别计算price的数量和金额并且按行与列进行汇总。

    13K31

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

    .xlsx', sheet_name= '产品表')该环节除了导入数据外,还需要对数据有初步的认识,明确有哪些字段,及其定义这里我们通过 pd.Series.head...异常值:不规范的数据,如空值、重复数据、无用字段等,需要注意是否存在不合理的值,比如订单数据中存在内部测试订单、有超过200岁年龄的顾客等特别注意数据格式是否合理,否则会影响表格合并报错、聚合统计报错等问题不符合业务分析场景的数据...表连接中的on有两种方式,一种是两个表用于连接的字段名是相同的,直接用on即可,如果是不相同,则要用left_on, right_on进行。...,得到的表就会存在两列相同含义但名字不同的字段,需要用pd.drop剔除多余字段。...而前面各族群人数统计中,需要一行一列来定位信息的就是二维表。结尾至此,我们已经通过Pandas建立了RFM模型及分组人群画像分析,完成了业务分析需求。

    2.2K31

    【Python环境】Python中的结构化数据分析利器-Pandas简介

    Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。...将DataFrame写入Excel文件: df.to_excel('foo.xlsx', sheet_name='sheet1') 默认的sheet为sheet1,也可以指定其他sheet名。...df.groupby(['A','B']).sum()##按照A、B两列的值分组求和 对应R函数: tapply() 在实际应用中,先定义groups,然后再对不同的指标指定不同计算方式。...groups = df.groupby('A')#按照A列的值分组求和groups['B'].sum()##按照A列的值分组求B组和groups['B'].count()##按照A列的值分组B组计数 默认会以...groupby的值作为索引,如果不将这些值作为索引,则需要使用as_index=False df.groupby(['A','B'], as_index=False).sum() 构建透视表 使用pivot_table

    16.4K100

    pandas技巧4

    ='单位') 和 writer.save(),将多个数据帧写入同一个工作簿的多个sheet(工作表) 查看、检查数据 df.head(n) # 查看DataFrame对象的前n行 df.tail(n)...降序排列数据 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(index=col1..., values=[col2,col3], aggfunc={col2:max,col3:[ma,min]}) # 创建一个按列col1进行分组,计算col2的最大值和col3的最大值、最小值的数据透视表...df.groupby(col1).agg(np.mean) # 返回按列col1分组的所有列的均值,支持df.groupby(col1).col2.agg(['min','max']) data.apply

    4.4K20

    新手也能上手的 Python 数据分析与可视化教程:从 Excel 到图表一步步教你做代码操作可视化图表

    ”填充“地区”缺失值 df["地区"].fillna("未知", inplace=True) 按组填充:对分组后的缺失值,用同组的均值/中位数填充。...# 例如:按“产品类别”分组,用每类的平均“单价(元)”填充该类的缺失值 df["单价(元)"] = df.groupby("产品类别")["单价(元)"].apply(lambda x: x.fillna...:pivot_table 如果想同时按 “Region” 和 “Category” 查看销售额情况,可使用 pivot_table: pivot = pd.pivot_table( df,...,会在当前目录生成 sales_analysis_results.xlsx ExcelWriter 可以指定不同 sheet 名称,将多张表写入同一文件; index=False 表示不写入行索引; 若文件已存在...(GroupBy) df.groupby("col")["val"].agg(["sum","mean"]) 按某列分组后对指定列进行聚合 透视表 pd.pivot_table(df, index, columns

    2.7K20

    Python报表自动化

    下面我们通过一个简单的案例来看看Python报表自动化的建模过程。某银行贷款业务部门数据分析员每天需要根据系统生成的个人贷款客户信息表统计管辖区域内各经营单位的不同贷款产品今年的投放情况。...2.Excel制作过程 结合以上两张图,我们知道利用Excel的数据透视表功能就制作该报表:选中数据表中任意一个单元格,点击插入数据透视表,然后按以下步骤执行: 将合同生效日字段放在页区域(筛选今年)...将单位字段放在透视表的行区域。 ? 当处理到单位字段时我们会发现,表中每一笔贷款都有三家网点进行业绩分成。我们需要将分成比例也考虑进去。所以透视表中的行区域及值区域不能简单的放入单位1和贷款金额。...由于个人贷款客户信息表为工作簿第一张工作表,因此缺省sheet_name参数。...在我们的例子中,需要将三个表的单位及分成比例字段追加在同一列。但是目前三个新表中的单位及分成比例字段名字是不一致的,不能直接追加。所以我们需要先将分表的名字统一。

    4.7K41

    pandas系列 - (一)明细数据汇总简单场景应用

    从数据处理的角度来说,主要还是看怎么方便怎么来,少量的数据,简单的,直接EXCEL就可以完成了,大量的数据,或者涉及太多的表可以考虑使用python提高工作效率,没有绝对。...='ffill',inplace=True) #向后填充 df.fillna(value={'地区':'其他','销售额':0},inplace=True) # 使用字典填充 3、场景3:按地区、一类属性汇总销售额总数和平均值...,aggfunc可以采用字典指定字段计算方式 pd.pivot_table(df, values=['销售额'], index=['地区','一类'], aggfunc={'销售额':[np.sum,np.mean...最后,再进行一次数据透视表 table = pd.pivot_table(df2, values=['销售额'], index=['转换区域','一类'], aggfunc={'销售额':[np.sum...]}) # 跨多行代码链接索引,这里分两部分操作可以进行赋值,但是不推荐 df2 = df.iloc[0:2,:] df2.iloc[0,'Animal'] = 2 # 链式索引这样是不会修改!

    1.4K10

    搭载AI之后的表格插件又有哪些新的改变

    以前文中“建议的数据透视表”为例,对于提供的表格数据,text-davinci-003 model会返回建议的文本内容: "text": "\n\n行:销售人员\n列:品牌\n值:销售额\n\n通过这样设置可以分析出每个销售人员销售的不同品牌的总销售额...{"role": "user", "content": "最后的JSON数据第一行是数据字段,创建有分析意义的数据透视表\\n" + JSON.stringify(data)} 3. ] 4...."name": "pivot_talbe_analyze", 6. "description": "对数据创建数据透视表,返回数据透视表结果", 7. "parameters": { 8....对于选择区域创建数据透视表,需要提供行、列、值三个维度的字段名称,因此需要rowFieldName、columnFieldName和dataFieldName三个paramenter。...另外,可以通过function_call设置选择function的模式,当functions字段不为空时默认为“auto”,示例中指定了function pivot_talbe_analyze。

    38910
    领券