pandas实现按照Series分组示例

目录
  • 1 按照一个Series进行分组
  • 2 按照多个Series进行分组
  • 3 分组和聚合采用不同的列或Series进行

本文用到的表格内容如下:

先来看一下数据情形

import pandas as pd
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
print(life_df)

result:
      分类  编号    名称
0     水果   0    苹果
1     水果   1    橙子
2   生活用品   2    牙刷
3   生活用品   3    冰箱
4   生活用品   4   电视机
5     食物   0    苹果
6     食物   1    橙子
7     家电   3    冰箱
8     家电   4   电视机
9     大件   3    冰箱
10    大件   4   电视机
11    大件   5    茶几
12  生活用品   7  暖手宝宝
13  小说   8   红楼梦

将DataFrame的其中一列取出来就是一个Series,比如life_df["分类"]就是一个Series

1 按照一个Series进行分组

life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
print(life_df.groupby(life_df["分类"]))

result:

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001506806C6C8>

从上面的结果可以看出,如果只是传入Series,分组后的结果是一个DataFrameGroupBy对象。这个对象包含着分组以后的若干组数据,但是没有直接显示出来,需要对这些分组数据进行汇总计算以后才会显示出来

life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
print(life_df.groupby(life_df["分类"]).count())

result:
  编号  名称

分类          
大件     3   3
家电     2   2
小说     1   1
水果     2   2
生活用品   4   4
食物     2   2

上面的代码是根据物品分类对所有数据进行了分组,然后对分组以后的数据分别进行计数运算,最后进行合并。

由于对分组后的数据进行了计数运算,因此每一列都会有一个结果。但是如果对分组后的结果做一些数值运算,这个时候只有数据类型是数值(int、float)的列才会参与运算

import pandas as pd
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
print(life_df.groupby(life_df["分类"]).sum())

result:
      编号

分类      
大件    12
家电     7
小说     8
水果     1
生活用品  16
食物     1

我们把这种对分组后的数据进行汇总运算的操作称为聚合,使用的函数称为聚合函数。比如前面系列文章提高的非空值计数、sum求和、最大值最小值、均值、中位数、众数、方差、标准差和分位数这些。都属于聚合函数。

2 按照多个Series进行分组

多Series分组和单Series分组差不多,只要将多个Series以列表的形式传递给groupby()即可。

life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
print(life_df.groupby([life_df["分类"], life_df["名称"]]).count())

result:
       编号

分类   名称      
大件   冰箱     1
     电视机    1
     茶几     1
家电   冰箱     1
     电视机    1
小说   红楼梦    1
水果   橙子     1
     苹果     1
生活用品 冰箱     1
     暖手宝宝   1
     牙刷     1
     电视机    1
食物   橙子     1
     苹果     1

life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
print(life_df.groupby([life_df["分类"], life_df["名称"]]).sum())

result:
       编号

分类   名称      
大件   冰箱     3
     电视机    4
     茶几     5
家电   冰箱     3
     电视机    4
小说   红楼梦    8
水果   橙子     1
     苹果     0
生活用品 冰箱     3
     暖手宝宝   7
     牙刷     2
     电视机    4
食物   橙子     1
     苹果     0

3 分组和聚合采用不同的列或Series进行

这里和按列分组的用法一致

life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
print(life_df.groupby(life_df["分类"])["名称"].count())

result:
分类
大件      3
家电      2
小说      1
水果      2
生活用品    4
食物      2
Name: 名称, dtype: int64

这里就是按照物品分类进行分组,再按照物品名称进行汇总统计

到此这篇关于pandas实现按照Series分组示例的文章就介绍到这了,更多相关pandas Series分组内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python3.5 Pandas模块之Series用法实例分析

    本文实例讲述了Python3.5 Pandas模块之Series用法.分享给大家供大家参考,具体如下: 1.Pandas模块引入与基本数据结构 2.Series的创建 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu #模块引入 import numpy as np import pandas as pd from pandas import Series,DataFrame #1.Series通过numpy一

  • 使用Pandas的Series方法绘制图像教程

    通常绘制二维曲线的时候可以使用matplotlib,不过如果电脑上安装了pandas的话可以直接使用Series的绘图方法进行图像的绘制. pandas绘制图像其实也是给予matplotlib的绘图功能处理相应的数据,最终绘制出相应的曲线. 在图形对象创建并操作之后还需要调用matplotlib的图像显示方法才能够最终显示出绘制的图像. 编写代码如下: import pandas as pd from pandas import Series,DataFrame import numpy as

  • python pandas 对series和dataframe的重置索引reindex方法

    reindex更多的不是修改pandas对象的索引,而只是修改索引的顺序,如果修改的索引不存在就会使用默认的None代替此行.且不会修改原数组,要修改需要使用赋值语句. series.reindex() import pandas as pd import numpy as np obj = pd.Series(range(4), index=['d', 'b', 'a', 'c']) print obj d 0 b 1 a 2 c 3 dtype: int64 print obj.reinde

  • pandas series序列转化为星期几的实例

    series序列中每个元素都是带有日期形式的字符串,需要将其转化为一个同等大小的series,且其中每个元素都是星期几. 1)将Series转化为datetime格式: 2)将Series中每个元素转化为星期: time_list = ["2017-05-10 17:19:19", "2017-05-11 17:19:20", "2017-05-12 17:19:20", "2017-05-13 17:19:20"] time

  • Pandas把dataframe或series转换成list的方法

    把dataframe转换为list 输入多维dataframe: df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9], 'b':[3,5,6,2,4,6,7,8,7,8,9]}) 把a列的元素转换成list: # 方法1df['a'].values.tolist() # 方法2df['a'].tolist() 把a列中不重复的元素转换成list: df['a'].drop_duplicates().values.tolist() 输入一维datafram

  • pandas 数据结构之Series的使用方法

    1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会使用默认索引(从0到N-1). # 引入Series和DataFrame In [16]: from pandas import Series,DataFrame In [17]: import pandas as pd In [18]: ser1 = Series([1,2,3,4]) In [1

  • pandas把dataframe转成Series,改变列中值的类型方法

    使用 pd.Series把dataframe转成Series ts = pd.Series(df['Value'].values, index=df['Date']) 使用astype改变列中的值的类型,注意前面要有np df['列名'] = df['列名'].astype(np.int64) 以上这篇pandas把dataframe转成Series,改变列中值的类型方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: python panda

  • 在python中pandas的series合并方法

    如下所示: In [3]: import pandas as pd In [4]: a = pd.Series([1,2,3]) In [5]: b = pd.Series([2,3,4]) In [6]: c = pd.DataFrame([a,b]) In [7]: c Out[7]: 0 1 2 0 1 2 3 1 2 3 4 不过pandas直接用列表生成dataframe只能按行生成,如果是字典可以按列生成,比如: In [8]: c = pd.DataFrame({'a':a,'b'

  • pandas中的series数据类型详解

    本文介绍了pandas中的series数据类型详解,分享给大家,具体如下: import pandas as pd import numpy as np import names ''' 写在前面的话: 1.series与array类型的不同之处为series有索引,而另一个没有;series中的数据必须是一维的,而array类型不一定 2.可以把series看成一个定长的有序字典,可以通过shape,index,values等得到series的属性 ''' # 1.series的创建 '''

  • pandas实现按照Series分组示例

    目录 1 按照一个Series进行分组 2 按照多个Series进行分组 3 分组和聚合采用不同的列或Series进行 本文用到的表格内容如下: 先来看一下数据情形 import pandas as pd life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx') print(life_df) result:       分类  编号    名称 0     水果   0    苹果 1     水果   1    橙子 2   生

  • pandas实现数据合并的示例代码

    目录 一. concat--数据合并 1.1 概述 1.2 指定合并的轴方向--axis 1.3 指定合并轴另外一个轴标签是否合并--join 1.4 指定合并轴原标签是否需要变化--ignore_index 1.5 指定合并轴方向新的index,便于区分数据--keys 1.6 指定合并轴方向新的index 的含义名称,一般和keys一起使用,让合并后的数据更直观--names 1.7 指定合并时是否允许合并轴上有重复标签--verify_integrity 二. merge--数据连接 2.

  • pandas实战:分析三国志人物示例实现

    目录 简介 背景 特点: 安装 简介 背景 Pandas 是 Python 的一个工具库,用于数据分析. 由 AQR Capital Management 于 2008 年 4 月开发,2009 年开源,最初被作为金融数据分析工具而开发出来. Pandas 名称来源于 panel data(面板数据)和 Python data analysis(Python 数据分析). 适用于金融.统计等数据分析领域. 特点: 两大数据结构 Series 和 DataFrame (1)Series:一维数据(

  • pandas数据拼接的实现示例

    一 前言 pandas数据拼接有可能会用到,比如出现重复数据,需要合并两份数据的交集,并集就是个不错的选择,知识追寻者本着技多不压身的态度蛮学习了一下下: 二 数据拼接 在进行学习数据转换之前,先学习一些数拼接相关的知识 2.1 join()联结 有关merge操作知识追寻者这边不提及,有空可能后面会专门出一篇相关文章,因为其学习方式根SQL的表联结类似,不是几行能说清楚的知识点: join操作能将 2 个DataFrame 合并为一块,前提是DataFrame 之间的列没有重复: # -*-

  • 利用pandas按日期做分组运算的操作

    原始数据 TS PERIOD REQUEST STEPPED VALUE STATUS SECONDS 20-DEC-16 00:00:00.0 600 1 0 2.018 0 1482163200 20-DEC-16 00:01:00.0 600 1 0 2.019 0 1482163260 20-DEC-16 00:02:00.0 600 1 0 2.019 0 1482163320 20-DEC-16 00:03:00.0 600 1 0 2.019 0 1482163380 20-DEC

  • pandas对齐运算的实现示例

    目录 1.算术运算和数据对齐 1.1 Series 1.2 DataFrame 2.使用填充值的算术方法 2.1 Series 2.2 DataFrame 3.DataFrame和Series混合运算 3.1 按行广播 3.2 按列广播 1.算术运算和数据对齐 import numpy as np import pandas as pd 1.1 Series a1 = pd.Series(np.arange(4),index=['a','b','c','d']) a2 = pd.Series(n

  • Pandas数据结构中Series属性详解

    目录 Series属性 Series属性列表 Series属性详解 Series属性 Series属性列表 属性 说明 Series.index 系列的索引(轴标签) Series.array 系列或索引的数据 Series.values 系列的数据,返回ndarray Series.dtype 返回基础数据的数据类型 Series.shape 返回基础数据形状的元组 Series.nbytes 返回基础数据占的字节数 Series.ndim 基础数据的维数,永远是1 Series.size 返

  • pandas实现数据可视化的示例代码

    目录 一.概述 1.1 plot函数参数 1.2 本文用到的数据源说明 二.折线图--kind='line' 三.柱状图--kind='bar' 3.1 各组数据(列)分开展示 3.2 各组(列)数据合并展示--stacked 3.3  横向柱状图--kind='barh' 四.直方图--kind='hist' 4.1 概述 4.2 自定义直方图横向区间数量 4.3 多子图展示多序列数据 4.4 一维数据密度图--kind='kde' 4.5 累积直方图--cumulative = True 五

  • Pandas.DataFrame重置Series的索引index(reset_index)

    目录 使用reset_index()将索引重新分配给序列号 基本用法 删除原始索引:参数drop 更改原始对象:参数inplace 使用reset_index()和set_index()将索引更改为另一列(重置) 如果使用reset_index()方法,则可以将pandas.DataFrame,pandas.Series的索引索引(行名称,行标签)重新分配为从0开始的序列号(行号). 如果将行号用作索引,则通过排序更改行的顺序或删除行并得到缺少的号码时,重新索引会更容易. 当行名(行标签)用作索

随机推荐