数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas高级(六)

简介: 你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,

2.pandas高级

2.1 数据集成

🚩pandas 提供了多种将 Series、DataFrame 对象组合在一起的功能

2.1.1 concat数据串联

🚩使用 concat 可以把数据进行合并,分别用 axis = 0 代表行合并,axis = 1 代表列合并

import pandas as pd
import numpy as np
# df1 看做是一班的考试成绩
df1 = pd.DataFrame(data = np.random.randint(0, 150, size = (10, 3)),# 计算机科目的考试成绩
                  index = list('ABCDEFGHIJ'),  # 行标签,用户
                  columns = ['Python', 'Tensorflow', 'Keras']) # 考试科目
# df2 看做是二班的考试成绩
df2 = pd.DataFrame(data = np.random.randint(0, 150, size = (10,3)),# 计算机科目的考试成绩
                  index = list('KLMNOPQRST'),# 行标签,用户
                  columns = ['Python', 'Tensorflow', 'Keras']) # 考试科目
# df3 新增两门考试科目(一班)
df3 = pd.DataFrame(data = np.random.randint(0, 150, size = (10,2)),
                  index = list('ABCDEFGHIJ'),
                  columns = ['PyTorch', 'Paddle'])
display(df1, df2, df3)
# 一班二班考试成绩合并
# axis = 0 表示进行(xing)行(hang)合并, 即行增加
display(pd.concat([df1, df2], axis = 0))
# 一班科目增加,合并科目
# axis = 1 表示进行列合并,即列增加
display(pd.concat([df1, df3], axis = 1))

50.png

2.1.2 插入

🚩使用 insert 可以在任意位置进行插入

import numpy as np
import pandas as pd
df = pd.DataFrame(data = np.random.randint(0, 151, size = (10, 3)),
                  index = list('ABCDEFGHIJ'),
                  columns = ['Python', 'Keras', 'Tensorflow'])
display(df) 
# 我们在 Keras 和 TensorFlow 中间插入一行 Math,分数均为150
df.insert(loc = 2, column = 'Math', value = 150)
# loc = 0 代表 Python, loc = 1 代表 Pytorch,以此类推
# 在 Python 后面插入一列 English
'''
获取列索引
df.columns 运行结果:Index(['Python', 'Pytorch', 'Math', 'Keras', 'Tensorflow'], 
          dtype='object')
把列索引转换为列表
list(df.columns) 运行结果:['Python', 'Pytorch', 'Math', 'Keras', 'Tensorflow']
调用index函数,获取列表中特定字段的位置
list(df.columns).index('Python') 运行结果:0
'''
# +1 表示在该位置后
index = list(df.columns).index('Python') + 1
df.insert(loc = index, column = 'English', value = np.random.randint(0, 151, size = 10))
display(df)

51.png

2.1.3 Join SQL风格合并

🚩数据集的合并(merge)或连接(join)运算是通过一个或者多个键将数据链接起来的。这些运算是关系型数据库的核心操作。pandas的merge函数是数据集进行join运算的主要切入点。

先来创建数据:

import pandas as pd
import numpy as np
# 记录的是name和weight
df1 = pd.DataFrame(data = {'name':['辰chen', '娇妹儿', '枭哥', '晶姐'],
                           'weight':[65, 60, 70, 50]})
# 记录的是name和height
df2 = pd.DataFrame(data = {'name':['辰chen', '娇妹儿', '枭哥', '黑猫警长'],
                           'height':[176, 184, 178, 166]})
# 记录的是名字和height
df3 = pd.DataFrame(data = {'名字':['辰chen', '娇妹儿', '枭哥', '黑猫警长'],
                           'height':[176, 184, 178, 166]})
display(df1, df2, df3)

52.png

利用 merge 对数据进行合并:

# df1, df2 进行合并
display(pd.merge(df1, df2)) # merge:根据共同的属性进行合并
# 共同的属性是name,共同拥有的是:辰chen, 娇妹儿, 枭哥

image.png

df1 和 df3 是不能直接进行合并的:

# df1, df3 进行合并
display(pd.merge(df1, df3))

image.png

当然啦,我们 pandas 是十分强大滴,按照如下代码可以进行合并:

# df1, df3 进行合并
# 指定了合并时, 根据哪一列进行合并
display(pd.merge(df1, df3, left_on = 'name', right_on = '名字'))

image.png

创建 10 名同学,计算每个人的平均分,并合并:

创建数据:

df4 = pd.DataFrame(data = np.random.randint(0, 151, size = (10, 3)),
                   index = list('ABCDEFHIJK'),
                   columns = ['Python', 'Keras', 'Tensorflow'])
display(df4)

image.png

计算平均分:

df4.mean()

image.png

我们要计算的不是列的平均分,而是每位同学的平均分:axis = 1

# 每个人的各科平均分, Series
df4.mean(axis = 1)

image.png

数据看起来不舒服,我们可以使用之前讲过的 round(1) 去保留一位小数:

# 每个人的各科平均分, Series
df4.mean(axis = 1).round(1)

image.png

看着是不是不是很舒服?我们可以把它变成 DataFrame

# 每个人的各科平均分, Series
t = df4.mean(axis = 1).round(1)
# 转为 DataFrame
df5 = pd.DataFrame(t, columns = ['平均分'])
df5

image.png

将 df4 和 df5 使用 merge 进行合并

# 将 df4 和 df5 使用 merge 进行合并
# df4 和 df5 没有共同的一列属性值相同,担有相同的行索引
pd.merge(df4, df5, left_index = True,   # 左边使用行索引
                   right_index = True)  # 右边使用行索引

image.png

上述代码同样可以用 concat 和 insert 实现:

pd.concat([df4, df5], axis = 1)

image.png

df4.insert(loc = 3, column = '平均分', value = df5)
df4

image.png


目录
相关文章
|
4月前
|
自然语言处理 数据挖掘 数据处理
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
本文将介绍 10 个在数据处理中至关重要的 Pandas 技术模式。这些模式能够显著减少调试时间,提升代码的可维护性,并构建更加清晰的数据处理流水线。
184 3
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
|
11月前
|
数据采集 数据可视化 数据挖掘
Pandas数据应用:天气数据分析
本文介绍如何使用 Pandas 进行天气数据分析。Pandas 是一个强大的 Python 数据处理库,适合处理表格型数据。文章涵盖加载天气数据、处理缺失值、转换数据类型、时间序列分析(如滚动平均和重采样)等内容,并解决常见报错如 SettingWithCopyWarning、KeyError 和 TypeError。通过这些方法,帮助用户更好地进行气候趋势预测和决策。
336 71
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
341 0
|
11月前
|
存储 数据采集 数据可视化
Pandas数据应用:电子商务数据分析
本文介绍如何使用 Pandas 进行电子商务数据分析,涵盖数据加载、清洗、预处理、分析与可视化。通过 `read_csv` 等函数加载数据,利用 `info()` 和 `describe()` 探索数据结构和统计信息。针对常见问题如缺失值、重复记录、异常值等,提供解决方案,如 `dropna()`、`drop_duplicates()` 和正则表达式处理。结合 Matplotlib 等库实现数据可视化,探讨内存不足和性能瓶颈的应对方法,并总结常见报错及解决策略,帮助提升电商企业的数据分析能力。
442 73
|
10月前
|
存储 数据采集 数据可视化
Pandas数据应用:医疗数据分析
Pandas是Python中强大的数据操作和分析库,广泛应用于医疗数据分析。本文介绍了使用Pandas进行医疗数据分析的常见问题及解决方案,涵盖数据导入、预处理、清洗、转换、可视化等方面。通过解决文件路径错误、编码不匹配、缺失值处理、异常值识别、分类变量编码等问题,结合Matplotlib等工具实现数据可视化,并提供了解决常见报错的方法。掌握这些技巧可以提高医疗数据分析的效率和准确性。
302 22
|
11月前
|
数据采集 数据可视化 索引
Pandas数据应用:股票数据分析
本文介绍了如何使用Pandas库进行股票数据分析。首先,通过pip安装并导入Pandas库。接着,从本地CSV文件读取股票数据,并解决常见的解析错误。然后,利用head()、info()等函数查看数据基本信息,进行数据清洗,处理缺失值和重复数据。再者,结合Matplotlib和Seaborn进行数据可视化,绘制收盘价折线图。最后,进行时间序列分析,设置日期索引、重采样和计算移动平均线。通过这些步骤,帮助读者掌握Pandas在股票数据分析中的应用。
439 5
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
264 2
|
12月前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南

热门文章

最新文章