利用Python进行数据分析-Pandas(第五部分-数据规整:聚合、合并和重塑)

  在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析。本部分关注可以聚合、合并、重塑数据的方法。

1、层次化索引

  层次化索引(hierarchical indexing)是pandas的一项重要功能,它使你能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它使你能以低纬度形式处理高纬度数据。我们来看一个简单的栗子:创建一个Series,并用一个由列表或数组组成的列表作为索引:

data = pd.Series(np.random.randn(9), index=[[‘a‘, ‘a‘, ‘a‘, ‘b‘, ‘b‘, ‘c‘, ‘c‘, ‘d‘, ‘d‘], [1, 2, 3, 1, 3, 1, 2, 2, 3]])
print(data)
a  1   -1.624220
   2   -1.061747
   3    0.895593
b  1   -2.702315
   3   -1.690189
c  1    2.608471
   2    1.167507
d  2    0.139161
   3    1.298629
dtype: float64

看到的结果是经过美化的带有MultiIndex索引的Series的格式。索引之间的“间隔”表示“直接使用上面的标签”:

print(data.index)
MultiIndex([(‘a‘, 1),
            (‘a‘, 2),
            (‘a‘, 3),
            (‘b‘, 1),
            (‘b‘, 3),
            (‘c‘, 1),
            (‘c‘, 2),
            (‘d‘, 2),
            (‘d‘, 3)],
           )

对于一个层次化索引的对象,可以使用所谓的部分索引

持续更新中......

原文地址:https://www.cnblogs.com/lsyb-python/p/12004531.html

时间: 2024-10-25 23:17:34

利用Python进行数据分析-Pandas(第五部分-数据规整:聚合、合并和重塑)的相关文章

利用Python进行数据分析-Pandas(第六部分-数据聚合与分组运算)

对数据集进行分组并对各组应用一个函数(无论是聚合还是转换),通常是数据分析工作中的重要环节.在将数据集加载.融合.准备好之后,通常是计算分组统计或生成透视表.pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作. 关系型数据库和SQL能够如此流行的原因之一就是能够方便地对数据进行连接.过滤.转换和聚合.但是,像SQL这样的查询语言所能执行的分组运算的种类很有限.在本部分你将会看到,由Python和pandas强大的表达能力,我们可以执行复

利用Python进行数据分析——pandas入门

利用Python进行数据分析--pandas入门 基于NumPy建立的 from pandas importSeries,DataFrame,import pandas as pd 一.两种数据结构 1.Series 类似于Python的字典,有索引和值 创建Series #不指定索引,默认创建0-N In [54]: obj = Series([1,2,3,4,5]) In [55]: obj Out[55]: 0 1 1 2 2 3 3 4 4 5 dtype: int64 #指定索引 In

利用python进行数据分析——pandas与索引

1. pandas包括series.dataframe Series Series是一维的数组型对象. Series包含了索引index和值value.比如说: DataFrame DataFrame是矩阵的数组表. DataFrame既有行索引也有列索引,它可以被视为一个共享相同索引的Series的dict.比如说: 2. pandas的索引? 2.1 普通索引.切片索引 在这个对象中,索引可以表达为: 注意1:通过索引获取数据,如果获取一个值,不显示索引:如果获取多个值,显示索引. 注意2:

利用 Python 进行数据分析(八)pandas 基本操作(Series 和 DataFrame)

一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 fill_value 参数指定填充值. 例如: fill_value 会让所有的缺失值都填充为同一个值,如果不想这样而是用相邻的元素(左或者右)的值填充,则可以用 method 参数,可选的参数值为 ffill 和 bfill,分别为用前值填充和用后值填充: 针对 DataFrame   重新索引

利用 Python 进行数据分析(九)pandas 汇总统计和计算

pandas 对象拥有一些常用的数学和统计方法.   例如,sum() 方法,进行列小计: sum() 方法传入 axis=1 指定为横向汇总,即行小计: idxmax() 获取最大值对应的索引: 还有一种汇总是累计型的,cumsum(),比较它和 sum() 的区别: unique() 方法用于返回数据里的唯一值: value_counts() 方法用于统计各值出现的频率: isin() 方法用于判断成员资格: 安装步骤已经在首篇随笔里写过了,这里不在赘述.利用 Python 进行数据分析(一

利用 Python 进行数据分析(七)- pandas 简单介绍(Series和DataFrame)

一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构:Series 和 DataFrame. 二.Series Series 是一个一维数组对象 ,类似于 NumPy 的一维 array.它除了包含一组数据还包含一组索引,所以可以把它理解为一组带索引的数组. 将 Python 数组转换成 Series 对象: 将 Python 字典转换成 Serie

利用 Python 进行数据分析(十二)pandas:数据合并

pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法combine_first()方法:合并重叠数据. pandas.merge()方法:数据库风格的合并 例如,通过merge()方法将两个DataFrame合并: on='name'的意思是将name列当作键: 默认情况下,merge做的是内连接(inner),即键的交集. 其他方式还有左连接(lef

《利用Python进行数据分析》之pandas的时间序列基础

本章以<利用python进行数据分析>的第10章:时间序列 为基础,整理了pandas 库中时间序列相关用法. 时间序列数据的意义取决于具体的应用场景,主要有以下几种: 时间戳(timestamp) 固定时期(period) 时间间隔(interval) 实验或过程时间 pandas提供了一组标准的时间序列处理工具和算法,可以轻松的对时间序列进行切片.聚合,对定期/不定期的时间序列进行重采样等. 这些工具大部分对金融和经济数据尤为有用,同时也可以用来分析服务器和日志数据. 1.日期和时间数据类

利用 Python 进行数据分析(五)NumPy 基础:ndarray 索引和切片

概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为array[index1:index2],意思是从index1索引位置开始,到index2索引(不包括index2)位置结束的一段数组.例如: 当把一个值赋值为一个切片时,该值会作用于此数组片段里每一个元素,例如: 二维数组 二维数组的索引 当以一维数组的索引方式访问一个二维数组的时候,获取的元素不在