pandas 进阶(一)

简介: 本文其实属于:Python的进阶之道【AIoT阶段一】的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 pandas 高级,读本文之前建议先修:pandas 入门,pandas 高级

前言

本文其实属于:Python的进阶之道【AIoT阶段一】的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 pandas 高级,读本文之前建议先修:pandas 入门,pandas 高级

1.数据重塑

🚩数据重塑其实就是行变列,列变行

1.1 一般数据

import numpy as np
import pandas as pd
df = pd.DataFrame(data = np.random.randint(0, 100, size = (10, 3)),
                     index = list('ABCDEFHIJK'),
                     columns = ['Python', 'Tensorflow', 'Keras'])
display(df)
# 转置
df.T

47.png

1.2 多层索引

df2 = pd.DataFrame(data = np.random.randint(0, 100, size = (20, 3)),
                   index = pd.MultiIndex.from_product([list('ABCDEFHIJK'), 
                                                       ['期中', '期末']]),#多层索引
                   columns = ['Python', 'Tensorflow', 'Keras'])
df2

48.png

我们来解释一下这个复杂的代码:ndex = pd.MultiIndex.from_product([list('ABCDEFHIJK'), ['期中', '期末']]),我们的第一个参数:ABCDEFHIJK,共是 10 1010 个字母,第二个参数是两个字符串,所以我们一共会有 20 2020 行的数据,这正好对应了前面的代码size = (20, 3)读者自行理解下面这个代码:

df3 = pd.DataFrame(data = np.random.randint(0, 100, size = (10, 6)),
                   index = list('ABCDEFHIJK'),
                   columns = pd.MultiIndex.from_product([['Python', 'Math', 'English'],
                                                         ['期中', '期末']]))
df3

image.png

我们用 unstack() 完成多层索引行变列的数据重塑:

# 行索引变列索引,结构改变
# 默认情况下,最里层调整
df2.unstack()

image.png

可以看出来,只是把行索引最里层的期中期末 移到了列索引的位置,我们也可以把行索引外层的 ABCDEFHIJK 移动至列索引的位置:

df2.unstack(level = 0)

image.png

我们用 stack() 完成多层索引列变行的数据重塑:

# 列索引变行索引,结构改变
# 默认情况下,最里层调整
df3.stack()

49.png

同样,我们通过调整参数可以实现使得列索引的最外层变成行索引:

df3.stack(level = 0)

50.png

1.3 多层索引的运算

sum() 求和运算:

df2.sum()

image.png

当然,这样的数据一般是没有意义的,我们一般想要求出每一位同学的总分,而不是每门科目的总分:

df2.sum(axis = 1)

image.png

# 期中,期末消失
# 计算的是每个人,期中期末的总分数
df2.sum(level = 0)

image.png

mean() 用来计算平均分:

# 同学消失
# 计算的是所有同学期中期末平均分
df2.mean(level = 1)

image.png

接下来简单介绍一下如何取数据:

# df3是多层列索引,可以直接使用[],根据层级关系取数据
# 取出 A 同学的 Python 科目的期中成绩
df3['Python', '期中']['A']

image.png

df2['Python']['A', '期中']

image.png


目录
相关文章
|
9天前
|
机器学习/深度学习 数据可视化 数据处理
Pandas进阶学习:探索更多高级特性与技巧
【4月更文挑战第16天】本文深入探讨Pandas的进阶特性,包括向量化操作、apply方法、数据重塑、布尔索引、多重索引、性能优化和库集成。通过学习,可以提升数据处理效率,如使用布尔条件筛选、CategoricalDtype优化性能、分块处理大数据及与NumPy、Matplotlib、Seaborn和scikit-learn集成。掌握这些技巧能助你更好地挖掘数据价值。
|
7月前
|
SQL 数据可视化 数据挖掘
Python 数据分析(四):Pandas 进阶
Python 数据分析(四):Pandas 进阶
68 0
Python 数据分析(四):Pandas 进阶
|
9月前
|
数据挖掘 数据处理 Python
Pandas进阶:处理缺失数据和数据聚合
在本篇文章中,我们将深入探讨Pandas库中两个重要的数据处理功能:处理缺失数据和数据聚合。
|
存储 SQL 数据挖掘
【python进阶系列之pandas】数据处理的大佬 pandas之数据结构
这里是三岁,速学了pandas,怕自己不会用整理了一下资料,有问题的地方或者不对的希望大家多多指出,批评指正!!! 由于pandas的内容过多我们就把经常使用的进行解析,其他的我们后续逐步添加
322 0
|
数据挖掘 索引 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十三)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
90 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十三)
|
数据挖掘 索引 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十四)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
95 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十四)
|
数据挖掘 索引 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十五)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
177 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十五)
|
数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十六)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
179 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十六)
|
数据挖掘 Java 索引
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十七)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
149 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十七)
|
数据可视化 数据挖掘 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十八)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
87 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十八)