Python熊猫– GroupBy

Python熊猫– GroupBy (Python Pandas – GroupBy)

GroupBy method can be used to work on group rows of data together and call aggregate functions. It allows to group together rows based off of a column and perform an aggregate function on them.

GroupBy方法可用于一起处理分组数据行并调用聚合函数。 它允许基于列将行分组在一起,并对它们执行聚合功能。

Consider the below example, there are three partitions of IDS (1, 2, and 3) and several values for them. We can now group by the ID column and aggregate them using some sort of aggregate function. Here we are sum-ing the values and putting the values.

考虑下面的示例,有三个IDS分区(1、2和3),以及它们的几个值。 现在,我们可以按ID列进行分组,并使用某种聚合函数对其进行聚合。 在这里,我们将这些值相加并放入这些值。

Python Pandas GroupBy

与熊猫团购 (Groupby with Pandas)

Create a dataframe from a dictionary

从字典创建数据框

import numpy as np
import pandas as pd
data = {'company':['Google','Microsoft','FB','Google','FB'], 'person':['Molly','Nathaniel', 'Sriansh', 'Carl','Sarah'], 'Sales':[200,123,130,144,122]}
df = pd.DataFrame(data)
print(df)

Output

输出量

     company     person  Sales
0     Google      Molly    200
1  Microsoft  Nathaniel    123
2         FB    Sriansh    130
3     Google       Carl    144
4         FB      Sarah    122

Following examples illustrate the 'GroupBy' function,

以下示例说明了“ GroupBy”功能

Example 1: GroupBy by 'company'

示例1:按“公司”分组

# returns the groubBy object
print(df.groupby('company')) 
'''
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7f1721585350>
'''
by_company = df.groupby('company')
#invoke aggregate function
print(by_company.mean()) 
'''
Sales
company
FB           126
Google       172
Microsoft    123
'''

In the above example, we don't see the person column, because the data type is String and by no means, we can get mean of String variables, and hence Pandas automatically ignores any non-numeric values.

在上面的示例中,我们没有看到person列,因为数据类型是String ,但绝不能获得String变量的均值 ,因此Pandas自动忽略任何非数字值。

Below are some more examples of aggregate functions,

以下是聚合函数的更多示例,

print(by_company.sum())
'''
Output:
Sales
company
FB           252
Google       344
Microsoft    123
'''

print(by_company.std())
'''
Output:
Sales
company
FB          5.656854
Google     39.597980
Microsoft        NaN
'''

Note the return type of the values are by default a DataFrame, as illustrated below,

请注意,默认情况下,值的返回类型为DataFrame,如下所示,

std = by_company.std()
print(type(std))
'''
Output:
<class 'pandas.core.frame.DataFrame'>
'''

And, hence we can perform all the dataFrame functions such as,

并且,因此我们可以执行所有dataFrame函数,例如,

print(by_company.std().loc['FB'])
'''
Output:
Sales    5.656854
Name: FB, dtype: float64
'''

The above mentioned steps, all can be performed in a single step as follows,

上述步骤全部可以在一个步骤中执行,如下所示:

print(df.groupby('company').sum().loc['FB'])
'''
Output:
Sales    252
Name: FB, dtype: int64
'''

Some more aggregate functions are,

还有一些聚合函数,

print(df.groupby('company').count())
'''
Output:
person  Sales
company
FB              2      2
Google          2      2
Microsoft       1      1
'''
print(df.groupby('company').max())
'''
Output:
person  Sales
company
FB           Sriansh    130
Google         Molly    200
Microsoft  Nathaniel    123
'''
print(df.groupby('company').min())
'''
Output:
person  Sales
company
FB             Sarah    122
Google          Carl    144
Microsoft  Nathaniel    123
'''

使用具有描述方法的GroupBy (Using GroupBy with describe method)

The describe() method returns a bunch of useful information all at once.

describe()方法一次返回一堆有用的信息。

print(df.groupby('company').describe())
'''
Output:
Sales                    ...
count   mean        std  ...    50%    75%    max
company                            ...
FB          2.0  126.0   5.656854  ...  126.0  128.0  130.0
Google      2.0  172.0  39.597980  ...  172.0  186.0  200.0
Microsoft   1.0  123.0        NaN  ...  123.0  123.0  123.0
[3 rows x 8 columns]
'''

The format of the description can be changed using transpose() method,

可以使用transpose()方法更改描述的格式,

print(df.groupby('company').describe().transpose())
'''
Output:
company              FB     Google  Microsoft
Sales count    2.000000    2.00000        1.0
mean   126.000000  172.00000      123.0
std      5.656854   39.59798        NaN
min    122.000000  144.00000      123.0
25%    124.000000  158.00000      123.0
50%    126.000000  172.00000      123.0
75%    128.000000  186.00000      123.0
max    130.000000  200.00000      123.0
'''

翻译自: https://www.includehelp.com/python/python-pandas-groupby.aspx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL索引底层原理理解以及常见问题总结

目录二叉查找树为索引红黑树为索引B树作为索引B树作为索引MyISAM存储引擎索引实现InnoDB存储引擎索引实现常见问题聚集索引与非聚集索引InnoDB基于主键索引和普通索引的查询有什么区别&#xff1f;InnoDB主键索引为何是整型的自增主键何时使用业务字段作为主键呢&#xff1f;哈…

des算法密码多长_密码学中的多个DES

des算法密码多长This is a DES that was susceptible to attacks due to tremendous advances in computer hardware in cryptography. Hence, it was a very complex or competent algorithm it would be feasible to reuse DES rather than writing an of cryptography. 由于…

《MySQL——索引笔记》

目录回表覆盖索引最左前缀原则联合索引的时候&#xff0c;如何安排索引内的字段顺序&#xff1f;索引下推重建索引问题联合主键索引和 InnoDB 索引组织表问题in与between的区别回表 回到主键索引树搜索的过程&#xff0c;我们称为回表。 覆盖索引 覆盖索引就是在这次的查询中…

《操作系统知识点整理》

目录进程与线程比较多线程同步与互斥生产者与消费者哲学家就餐问题读者写者问题进程间通信管道消息队列共享内存信号量信号Socket锁互斥锁与自旋锁读写锁乐观锁与悲观锁死锁进程与线程比较 进程是资源&#xff08;包括内存、打开的文件等&#xff09;分配的单位&#xff0c;线…

操作系统大内核和微内核_操作系统中的内核

操作系统大内核和微内核A Kernel is the central component of an Operating System. The Kernel is also said to be the heart of the Operating System. It is responsible for managing all the processes, memory, files, etc. The Kernel functions at the lowest level …

《MySQL——锁》

全局锁是什么&#xff1f;全局锁有什么用&#xff1f;全局锁怎么用&#xff1f; 全局锁主要用在逻辑备份过程中&#xff0c;对于InnoDB 引擎的库&#xff0c;使用–single-transaction; MySQL 提供了一个加全局读锁的方法&#xff0c;命令是 Flush tables with read lock (FTW…

搜索引擎Constellio及Google Search Appliances connectors

做搜索产品的时候发现国外一个同类型的产品contellio&#xff0c;发现功能比较强大&#xff0c;先记录下来 貌似可以添加文档 网站 以及数据库等不同类型的数据源 http://wiki.constellio.com/index.php/Main_Page http://www.constellio.com/ http://www.constellio.com htt…

分类器是如何做检测的?——CascadeClassifier中的detectMultiScale函数解读

原地址&#xff1a;http://blog.csdn.net/delltdk/article/details/9186875 在进入detectMultiScal函数之前&#xff0c;首先需要对CascadeClassifier做初始化。 1. 初始化——read函数 CascadeClassifier的初始化很简单&#xff1a; cv::CascadeClassifier classifier; cl…

abs std::abs_ABS的完整形式是什么?

abs std::absABS&#xff1a;防抱死制动系统 (ABS: Anti-lock Braking System) ABS is an abbreviation of the Anti-lock Braking System. It is a safety anti-skid braking system that is used on a variety of aircraft, automobiles and other land vehicles, such as mo…

汉字速查使用方法简介

《汉字速查》&#xff08;HanziSearcher&#xff09;是一个支持全汉字字典和词典的检索工具。其界面如下所示。 界面上方为工具栏。 左方为字典和词典检索栏。 右方在启动时显示版权信息和作者的联系方式&#xff0c;在执行检索时&#xff0c;显示检索结果。 检索方法 汉字速查…

android jni示例_Android服务示例

android jni示例A service is a component that runs in the background for supporting different types of operations that are long running. The user is not interacted with these. These perform task even if application is destroyed. Examples include handling of…

空间换时间,把递归的时间复杂度降低到O(2n)

递归算法的时间复杂度除非只有前两项&#xff0c;否则都不是线性的&#xff0c;并且相当耗费内存。我们用最常见的的fibonacci数列来说明&#xff1a; function fibonacci(n){if( n 0 || n 1){return n;} else {return fibonacci(n - 1) fibonacci(n - 2);} } 这是一种最常见…

《MySQL——给长字符串加索引》

对于长字符串&#xff0c;可用如下方式建立索引&#xff1a; &#xff08;1&#xff09;前缀索引 &#xff08;2&#xff09;字符串倒叙前缀索引 &#xff08;3&#xff09;添加hash字段并在hash字段上加索引 &#xff08;4&#xff09;字段拆分&#xff08;一个字段可拆分为两…

傻瓜教你看清MVC内部执行流程之ViewData数据传输,轻松学MVC--①目了然篇(待续)

1.首先在执行到Controller里面的action(方法)时,执行到最后会调用一个View()-->此方法是Controller的一个方法 源代码: View Code protected internal ViewResult View(){return View(null /* viewName */, null /* masterName */, null /* model */);} 2.然后继续调用自己…

poj 1088

题目&#xff1a;http://poj.org/problem?id1088 记忆化搜索&#xff0c;dp[r][c] max(dp[r - 1][c] , dp[r 1][c] , dp[r][c - 1] , dp[r][c 1]) 1 ( if (题目给的条件满足&#xff09;&#xff09; View Code 1 using namespace std;2 typedef long long ll;3 const in…

《MySQL——order by逻辑(全字段排序与rowid排序)》

创建一个表&#xff0c;然后使用查询语句&#xff1a; 查询城市是“杭州”的所有人名字&#xff0c;并且按照姓名排序返回前 1000 个人的姓名、年龄 create table t (id int(11) not null,city vachar(16) not null,name vachar(16) not null,age vachar(16) not null,addr va…

HTML5 video

摘要&#xff1a;本文主要介绍HTML5 video在android2.2中实现的主要架构和程序流程。 一、实现HTML5 video主要的类 1&#xff0e; 主要类结构及介绍 图1中绿色类为java类&#xff0c;其余为c类&#xff0c;下面是各个类的具体介绍: (1) HTMLElement类不是最上层类&#xff0c…

明源面试

明源面试&#xff0c;笔试题目如下 一、SQL测试题 1 有两张表 根据给出的SQL语句&#xff0c;写出返回的行数分别是多少&#xff1f;为了形象直观的显示&#xff0c;我给出了sql语句执行结果。 A 学生表 B分数表 新题目 select a.* from a inner join b on a.idb.id; …

肯德基收银系统模式_肯德基的完整形式是什么?

肯德基收银系统模式肯德基&#xff1a;肯塔基炸鸡 (KFC: Kentucky Fried Chicken) KFC is an abbreviation of "Kentucky Fried Chicken". It is a fast-food restaurant chain whose specialty is known for fried chicken because of its specialization in it. It…

泛型(CSDN转载)

函数的参数不同叫多态&#xff0c;函数的参数类型可以不确定吗&#xff1f; 函数的返回值只能是一个吗&#xff1f;函数的返回值可以不确定吗&#xff1f; 泛型是一种特殊的类型&#xff0c;它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。 下面是两个经典…