groupby: 分组

melt: 宽表转长表

pivot_table: 长表转宽表,数据透视表

crosstab: 交叉表 / 列联表,主要用于分组频数统计

import numpy as np
import pandas as pd df = pd.DataFrame({'key1':['a','a','b','b','a'],
'key2':['one','two','one','two','one'],
'data1':np.random.randn(5),
'data2':np.random.randn(5)
})
# key1 key2 data1 data2
#0 a one 0.498857 0.074495
#1 a two 2.872086 -1.303973
#2 b one -0.721171 -1.315390
#3 b two 0.985844 0.419780
#4 a one -0.134534 -0.732861 # ####################
'''groupby 用法'''
group1 = df.groupby('key1')
group2 = df.groupby(['key1','key2'])
[x for x in group1]
group1.size()
group1.sum()
group2.count()
group1['data1','data2'].agg(['mean','sum']) #作用于所有列
group2(['key1','key2']).apply(lambda x: pd.Series([x.shape[0], x['key1'].mean(), x['key2'].sum()],
index=['counts', 'key1_mean', 'key2_sum'])) #作用于指定列 # ####################
''' melt 用法 -- 宽表转长表 '''
pd.melt(df, id_vars=['key1', 'key2'], value_vars=['data1', 'data2'], var_name='var', value_name='value') #col_level
# key1 key2 var value
#0 a one data1 0.498857
#1 a two data1 2.872086
#2 b one data1 -0.721171
#3 b two data1 0.985844
#4 a one data1 -0.134534
#5 a one data2 0.074495
#6 a two data2 -1.303973
#7 b one data2 -1.315390
#8 b two data2 0.419780
#9 a one data2 -0.732861 # ####################
''' crosstab 用法 -- 列联表(count) '''
pd.crosstab(df.key1, df.key2, margins=True)
#key2 one two All
#key1
#a 2 1 3
#b 1 1 2
#All 3 2 5 # ####################
''' pivot_table 用法 -- 长表转宽表 '''
# pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None,
#         dropna=True, margins=False, margins_name='ALL') #aggfunc={'d':np.sum, 'e':np.max}
pd.pivot_table(df, index='key1', columns='key2')
# data1 data2
#key2 one two one two
#key1
#a 0.182162 2.872086 -0.329183 -1.303973
#b -0.721171 0.985844 -1.315390 0.419780 df.pivot_table(['data1'], index='key1', columns='key2', fill_value=0) #['data1']
# data1
#key2 one two
#key1
#a 0.182162 2.872086
#b -0.721171 0.985844

参考链接:

Pandas:透视表(pivotTab)和交叉表(crossTab)

pandas模块,Melt函数

Pandas分组统计函数:groupby、pivot_table及crosstab

pandas分组统计:groupby,melt,pivot_table,crosstab的用法的更多相关文章

  1. Pandas分组(GroupBy)

    任何分组(groupby)操作都涉及原始对象的以下操作之一.它们是 - 分割对象 应用一个函数 结合的结果 在许多情况下,我们将数据分成多个集合,并在每个子集上应用一些函数.在应用函数中,可以执行以下 ...

  2. pandas 分组统计

    # coding:utf-8 import pandas as pd import numpy as np # path = r'C:\Users\wuzaipei\Desktop\桂林三金项目签到情 ...

  3. Pandas分组统计函数:groupby、pivot_table及crosstab

    利用python的pandas库进行数据分组分析十分便捷,其中应用最多的方法包括:groupby.pivot_table及crosstab,以下分别进行介绍. 0.样例数据 df = DataFram ...

  4. Pandas分组运算(groupby)修炼

    Pandas分组运算(groupby)修炼 Pandas的groupby()功能很强大,用好了可以方便的解决很多问题,在数据处理以及日常工作中经常能施展拳脚. 今天,我们一起来领略下groupby() ...

  5. pandas聚合和分组运算——GroupBy技术(1)

    数据聚合与分组运算——GroupBy技术(1),有需要的朋友可以参考下. pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作.根据一个或多个 ...

  6. pandas处理csv,分组统计

    需求: /tmp/demo/data下有10个csv文件,按col0和col1分组分别统计col2和col3总和并计算col2和col3的商 # encoding:utf-8 import panda ...

  7. DataTable、List使用groupby进行分组和分组统计;List、DataTable查询筛选方法

    DataTable分组统计: .用两层循环计算,前提条件是数据已经按分组的列排好序的. DataTable dt = new DataTable(); dt.Columns.AddRange(new ...

  8. C# Linq及Lamda表达式实战应用之 GroupBy 分组统计

    在项目中做统计图表的时候,需要对查询出来的列表数据进行分组统计,首先想到的是避免频繁去操作数据库可以使用 Linq eg: //例如对列表中的Cu元素进行按年GroupBy分组统计 //包含年份,平均 ...

  9. Python Pandas分组聚合

    Pycharm 鼠标移动到函数上,CTRL+Q可以快速查看文档,CTR+P可以看基本的参数. apply(),applymap()和map() apply()和applymap()是DataFrame ...

随机推荐

  1. s3c2440裸机-UART编程(一、UART硬件介绍及传输原理)

    1.uart硬件介绍 UART的全称是Universal Asynchronous Receiver and Transmitter(异步收发器). uart主要用于: 1.打印调试 2.数据传输 串 ...

  2. Intellj IDEA 快捷键冲突

    Intellij IDEA快捷键冲突 [问题描述]: ctr + alt + 方向键 与系统的快捷键冲突,按快捷键,屏幕方向发生改变. [解决办法]: ctr + alt + F12 调用出Intel ...

  3. 移位寄存器及verilog代码

    通用移位寄存器 作用:后续补全 )( :] Data_out, output MSB_out, LSB_out, :] Data_in, input MSB_in, LSB_in, input s0, ...

  4. matlab练习程序(点云密度)

    算法思路是首先建立kd树,然后找到每个点距离最近的点的距离,对距离求和再求平均即可. 代码如下: clear all; close all; clc; pc = pcread('rabbit.pcd' ...

  5. C语言程序设计100例之(13):最大子段和

    例13        最大子段和 题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大.例如在序列2,-4,3,-1,2,-4,3中,最大的子段和为4,该子段为3,-1,2. 输入格式 第一 ...

  6. 1+x 证书 Web 前端开发 css 专项练习

    官方QQ群 1+x 证书 Web 前端开发 css 专项练习 http://blog.zh66.club/index.php/archives/192/

  7. zookeeper C client API 和zkpython 的安装

    1 zookeeper C API 安装 yum install -y ant 在解压的zookeeper包中执行: ant compile_jute 进入src/c 安装:yum -y instal ...

  8. 全网趣味网站分享:今日热榜/Pixiv高级搜索/win10激活工具/songtaste复活/sharesome汤不热替代者

    1.回形针手册 由科普类视频节目“回形针PaperClip”近期提出的一个实用百科工具计划,计划名称是回形针手册. 包含了当下科技,农业等等各行各业的各种相关信息,计划刚刚开始! 关于回形针手册的详细 ...

  9. ElasticSearch简介(三)——中文分词

    很多时候,我们需要在ElasticSearch中启用中文分词,本文这里简单的介绍一下方法.首先安装中文分词插件.这里使用的是 ik,也可以考虑其他插件(比如 smartcn). $ ./bin/ela ...

  10. vue-品牌管理案例-指令和过滤器

    过滤器的基本使用 定义一个过滤器 <div id="app"> <p>{{ msg | msgFormat('疯狂+1', '123') | test }} ...