利用python进行数据分析-书籍笔记(4)

本文详细介绍了Pandas库中数据规整的方法,包括分层索引的使用、重排序、按层级汇总统计、DataFrame的列索引设置,以及数据连接技术如merge、join、concatenate和stack/unstack操作。通过实例展示了如何高效地处理和整合数据集。
摘要由CSDN通过智能技术生成

目录

一、数据规整:连接、联合与重塑

1、分层索引

2、重排序和层级排序

(1)swaplevel交换层级

(2)sort_index() 

3、按层级进行汇总统计

4、使用DataFrame的列进行索引

4、联合与合并数据集

(1)merge连接

​编辑

(2)根据索引合并

(3)沿轴向连接

(4)联合重叠数据

5、重塑和透视


一、数据规整:连接、联合与重塑

1、分层索引

在一个轴向上拥有多个(两个或两个以上)索引层级。笼统地说,分层索引提供了一种在更低维度的形式中处理更高维度数据的方式

  • series对象

  • dataframe对象

  • 通过分层索引对象,也可以称为部分索引,允许你简洁地选择出数据的子集

你可以使用unstack方法将数据在DataFrame中重新排列:

unstack的反操作是stack

  • 分层的层级名称:如果层级有名称,这些名称会在控制台输出中显示

2、重排序和层级排序

(1)swaplevel交换层级

接收两个层级序号或层级名称,返回一个进行了层级变更的新对象(但是数据是不变的)

(2)sort_index() 

在 Pandas 库的 DataFrame 和 Series 对象中都有这个方法。它的主要功能是对索引进行排序。

  • 按行排序:可以使用 sort_index(axis=0) 或简写为 sort_index() 对行进行排序。
  • 按列排序:使用 sort_index(axis=1) 对列进行排序。
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.arange(12).reshape((4, 3)),index=[['a', 'a', 'b', 'b'], [1, 2, 1, 2]],columns=[['Ohio', 'Ohio', 'Colorado'],['Green', 'Red', 'Green']])
frame.index.names=['key1','key2']
frame.columns.names=['state','color']
print("初始数据")
print(frame)
x=frame.swaplevel('key1','key2')
print("换层级数据")
print(x)
y=x.sort_index(level=0)
print("排序数据,level=0")
print(y)

3、按层级进行汇总统计

DataFrame和Series中很多描述性和汇总性统计有一个level选项,通过level选项你可以指定你想要在某个特定的轴上进行聚合,见后续章节。

4、使用DataFrame的列进行索引

  • set_index函数:会生成一个新的DataFrame,新的DataFrame使用一个或多个列作为索引:

4、联合与合并数据集

(1)merge连接

pandas中的merge函数主要用于将各种join操作算法运用在你的数据上:

  • 基础数据

  • 默认情况下,merge做的是内连接('inner'join),结果中的键是两张表的交集。
  • 如果连接的键信息没有指定,merge会自动将重叠列名作为连接的键。但是,显式地指定连接键才是好的实现。如下图,根据‘key’列,进行合并

  • 如果每个对象的列名是不同的,你可以分别为它们指定列名:

  • how参数的其他可选的选项有’left'、'right’和’outer'。外连接(outer join)是键的并集,联合了左连接和右连接的效果:

  • 多对多情况:多对多连接是行的笛卡尔积

多对多示例:

其他:

(2)根据索引合并

传递left_index=True或right_index=True(或者都传)来表示索引需要用来作为合并的键:

  • 多层索引方法类似

  • 使用两边的索引进行合并也是可以的:

  • join实例方法:用于按照索引合并。
  • 该方法也可以用于合并多个索引相同或相似但没有重叠列的DataFrame对象

注意:DataFrame的join方法进行连接键上的左连接,完全保留左边DataFrame的行索引

(3)沿轴向连接

另一种数据组合操作可互换地称为拼接、绑定或堆叠。

  • concatenate函数

  • contact函数:默认沿着axis=0的轴向生效的,生成另一个Series。如果你传递axis=1,返回的结果则是一个DataFrame(axis=1时是列)

  • 假设你想在连接轴向上创建一个多层索引,可以使用keys参数来实现

(4)联合重叠数据

  • 有两个数据集,这两个数据集的索引全部或部分重叠

  • combine_first:

Series:等价于下面这种使用pandas常见数据对齐逻辑的轴向操作:

DataFrame对象:根据你传入的对象来”修补“调用对象的缺失值:

5、重塑和透视

statck(堆叠)
该操作会“旋转”或将列中的数据透视到行。
unstack(拆堆)
该操作会将行中的数据透视到列。

在这份数据上使用stack方法会将列透视到行,产生一个新的Series:

从一个多层索引序列中,你可以使用unstack方法将数据重排列后放入一个DataFrame中

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
学习数据分析是当代信息时代的一项重要技能,Python作为一种强大的编程语言,是数据分析的热门工具之一。以下是我在学习利用Python进行数据分析过程中的一些笔记。 首先,学习Python的基础知识是必不可少的。了解Python的基本语法、数据类型、循环和条件语句等知识对于数据分析的学习非常重要。我通过自学网课和阅读相关书籍,逐渐掌握了Python的基础知识。 其次,学习使用Python数据分析库。在Python中,有很多强大的数据分析库,例如NumPy、Pandas和Matplotlib等。我通过学习这些库的用法,掌握了数据的处理、清洗、分析和可视化的技巧。我学习了如何使用NumPy进行矩阵运算和数值计算,如何使用Pandas进行数据处理和数据操作,以及如何使用Matplotlib进行数据可视化。 除了数据分析库,学习Python的机器学习库也是必不可少的。机器学习在数据分析中扮演着重要角色,Python中有很多优秀的机器学习库,例如Scikit-learn和TensorFlow。我通过学习这些库的使用,了解了机器学习的基本概念和常用算法,例如回归、分类和聚类等。我也学习了如何使用这些库来构建和训练机器学习模型。 最后,实践是学习的关键。在学习的过程中,我通过实践项目来巩固所学知识。我选择了一些真实的数据集,并运用Python数据分析技术进行数据处理、分析和可视化。通过实践,我不仅掌握了数据分析的具体步骤和方法,还锻炼了自己解决实际问题的能力。 总的来说,学习利用Python进行数据分析需要掌握Python的基础知识、数据分析库和机器学习库的使用,同时也需要通过实践项目来巩固所学知识。这个过程需要持续不断的学习和实践,但是通过不断的努力和实践,我相信能够掌握Python进行数据分析的技能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值