《PySpark大数据分析实战》-22.Pandas介绍Series介绍

发布时间:2024年01月02日

📋 博主简介

  • 💖 作者简介:大家好,我是wux_labs。😜
    热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
    通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
    通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
    对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。
  • 📝 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~🔥
  • 📝 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~🔥
  • 🎉 请支持我:欢迎大家 点赞👍+收藏??+吐槽📝,您的支持是我持续创作的动力~🔥

《PySpark大数据分析实战》-22.Pandas介绍Series介绍

前言

大家好!今天为大家分享的是《PySpark大数据分析实战》第3章第2节的内容:Pandas介绍Series介绍。

图书在:当当京东机械工业出版社以及各大书店有售!

数据分析库Pandas介绍

Pandas是Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。它基于NumPy库构建,使数据操作变得更加简单、快速和直观。Pandas 适用于处理以下类型的数据:

  • 与SQL或Excel表类似的,含异构列的表格数据。
  • 有序和无序(非固定频率)的时间序列数据。
  • 带行列标签的矩阵数据,包括同构或异构型数据。
  • 任意其它形式的观测、统计数据集,数据转入Pandas数据结构时不必事先标记。

要在项目中使用Pandas,需要在Python环境中安装Pandas,命令如下:

$ pip install pandas

在使用时需要在Python脚本中导入pandas,代码如下:

import pandas as pd

Pandas主要提供了两种数据结构:Series和DataFrame。

Series介绍

Series是一种一维的数据结构,类似于数组和Python中的列表,但是它可以支持不同类型的数据。每个Series对象都由两个数组组成:一个由数据本身组成的数组和一个由标签组成的数组,标签用于标识数据。

创建对象

可以基于列表或者数据字典来创建Series对象,基于列表创建时,可以为Series数据定义标签,如果不指定标签,则默认用数字作为标签。在下面的案例中,分别用不同方式创建了Series对象,代码如下:

# 不指定标签创建Series,默认使用数字作为标签
ser1 = pd.Series([1, 3, 5])
# 指定标签创建Series
ser2 = pd.Series([1, 3, 5], index=['a', 'b', 'c'])
# 基于字典创建Series
ser3 = pd.Series({'A': 1, 'B': 3, 'C': 5})

print(ser1)
print(ser2)
print(ser3)

执行代码,输出结果如下:

0    1
1    3
2    5
dtype: int64
a    1
b    3
c    5
dtype: int64
A    1
B    3
C    5
dtype: int64

其中,左边的元素是Series的标签,右边的元素是Series的数据值。

访问数据

Series提供了两个属性,index用来访问Series的标签,values用来访问Series的数据值。要获取Series中具体的元素,可以通过标签、位置、切片等方式来获取。在下面的案例中,分别采用不同的方式来获取Series的元素,代码如下:

ser4 = pd.Series([1, 3, 5, 7, 9], index=['a', 'b', 'c', 'e', 'f'])
print("ser4的标签:", ser4.index)
print("ser4的数据:", ser4.values)
print("通过标签b获取数据:", ser4['b'])
print("通过位置1获取数据:", ser4[1])
print("通过切片获取数据:", ser4[1:3])
print("获取不连续的数据:", ser4[[1, 3, 4]])

执行代码,输入内容如下:

ser4的标签: Index(['a', 'b', 'c', 'e', 'f'], dtype='object')
ser4的数据: [1 3 5 7 9]
通过标签b获取数据: 3
通过位置1获取数据: 3
通过切片获取数据: b    3
c    5
dtype: int64
获取不连续的数据: b    3
e    7
f    9
dtype: int64
数据运算

Series对象可以进行各种运算,例如算术运算、逻辑运算、数学运算等。当两个Series之间进行运算时,Pandas会根据Series的标签自动对齐两个Series的元素进行运算,而不是按照两个Series元素的位置进行对齐,如果两个Series的标签不同,则在对齐时用NaN填充缺失值。在下面的案例中,定义了两个标签不同的Series并进行运算,代码如下:

ser4 = pd.Series([1, 5], index=['a', 'b'])
ser5 = pd.Series([2, 6], index=['b', 'c'])

print("加法运算:", ser4 + ser5)
print("乘法运算:", ser4 * ser5)
print("布尔过滤:", ser5[ser5 > 4])
print("数的运算:", ser4 * 2)
print("数学运算:", np.square(ser4))

执行代码,输出结果如下:

加法运算: a    NaN
b    7.0
c    NaN
dtype: float64
乘法运算: a     NaN
b    10.0
c     NaN
dtype: float64
布尔过滤: c    6
dtype: int64
数的运算: a     2
b    10
dtype: int64
数学运算: a     1
b    25
dtype: int64

结束语

好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。

文章来源:https://blog.csdn.net/wux_labs/article/details/135338826
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。