目录
3.2.13 DataFrame属性方法info(),index,coloumns,values ,axes
3.2.14 head()&tail()查看DataFrame数据
3.2.17 ndim&shape查看DataFrame维数和维度
3.2.19 T(Transpose)对DataFrame转置
3.4.1 以 (row_index,row) 的形式遍历行iterrows():
3.4.2 使用已命名元组的方式遍历行itertuples()
3.5.1 axis=0, ascending=True 默认按“行标签”升序排列
1 Pandas介绍
Pandas 是一个开源的第三方 Python 库,从 Numpy 和 Matplotlib 的基础上构建而来,享有数据分析“三剑客之一”的盛名(NumPy、Matplotlib、Pandas)。Pandas 已经成为 Python 数据分析的必备高级工具,它的目标是成为强大、灵活、可以支持任何编程语言的数据分析工具。Pandas具有如下特点:
- DataFrame是一种高效快速的数据结构模式,Pandas支持DataFrame格式,从而可以自定义索引
- 可以将不同格式的数据文件加载到内存中
- 未对齐及其索引方式不同的数据可按轴自动对齐
- 可处理时间序列或非时间序列数据
- 可基于标签来切片索引,获得大数据集子集
- 可进行高性能数据分组、聚合、添加、删除
- 灵活处理数据缺失、重组、空格
Pandas广泛用于金融、经济、数据分析、统计等商业领域,为各个领域数据从业者提供了便捷。
官网地址:https://pandas.pydata.org/
2 Pandas的安装与导入
2.1 Pandas模块安装
Python自带的包管理工具pip来安装:
pip install pandas
2.2 Pandas模块导入
Pandas的导入
import pandas as pd
import numpy as np # pandas和numpy常常结合在一起使用
3 pandas数据结构及函数
构建和处理二维、多维数组是一项繁琐的任务。Pandas 为解决这一问题, 在 ndarray 数组(NumPy 中的数组)的基础上构建出了两种不同的数据结构,分别是 Series(一维数据结构)和 DataFrame(二维数据结构):
- Series 是带标签的一维数组,这里的标签可以理解为索引,但这个索引并不局限于整数,它也可以是字符类型,比如 a、b、c 等;
- DataFrame 是一种表格型数据结构,它既有行标签,又有列标签。
| 数据结构 | 维度 | 说明 |
| Series | 1 | 该结构能够存储各种数据类型,比如字符数、整数、浮点数、Python 对象等,Series 用 name 和 index 属性来描述 数据值。Series 是一维数据结构,因此其维数不可以改变。 |
| DataFrame | 2 | DataFrame 是一种二维表格型数据的结构,既有行索引,也有列索引。行索引是 index,列索引是 columns。 在创建该结构时,可以指定相应的索引值。 |
3.1 Series结构
Series 结构,也称Series序列,是Pandas常用的数据结构之一,它是一种类似于一维数组的结构,由一组数据值(value)和一组标签组成,其中标签与数据值之间是一一对应的关系。
Series 可以保存任何数据类型,比如整数、字符串、浮点数、Python 对象等,它的标签默认为整数,从 0 开始依次递增。Series 的结构图,如下所示:

通过标签我们可以更加直观地查看数据所在的索引位置。
函数原型:
pandas.Series( data, index, dtype, copy)
参数说明:
#data 输入的数据,可以是列表、常量、ndarray 数组等。 #index 索引值必须是惟一的,如果没有传递索引,则默认为 #np.arrange(n)。 #dtype dtype表示数据类型,如果没有提供,则会自动判断得出。 #copy 表示对 data 进行拷贝,默认为 False。
可以用数组、字典、标量值或者 Python 对象来创建 Series 对象
Series 访问数据分为两种方式,一种是位置索引访问;另一种是标签索引访问。
Series 的常用属性和方法。在下表列出了 Series 对象的常用属性
| 名称 | 属性 |
| axes | 以列表的形式返回所有行索引标签 |
| dtype | 返回对象的数据类型 |
| empty | 判断Series对象是否为空 |
| ndim | 返回输入数据的维数 |
| size | 返回输入数据的元素数量 |
| values | 以ndarray的形式返回Series对象 |
| index | 返回一个RangeIndex对象,用来描述索引的取值范围。 |
3.1.1 ndarray创建Series对象
import pandas as pd
import numpy as np
data = np.array(['a', 'b', 'c', 'd'])
# 使用默认索引,创建 Series 序列对象
s1 = pd.Series(data)
print(f'默认索引:\n{s1}')
# 使用“显式索引”的方法自定义索引标签
s2 = pd.Series(data, index=[100, 101, 102, 103])
print(f'自定义索引\n{s2}')
运行结果显示如下:
默认索引:
0 a
1 b
2 c
3 d
dtype: object
自定义索引
100 a
101 b
102 c
103 d
dtype: object
示例中s1没有传递任何索引,所以索引默认从 0 开始分配 ,其索引范围为 0 到len(data)-1。
3.1.2 dict创建Series对象
把 dict 作为输入数据。如果没有传入索引时会按照字典的键来构造索引;反之,当传递了索引时需要将索引标签与字典中的值一一对应。
import pandas as pd
import numpy as np
data = {'a': 0, 'b': 1, 'c': 2}
# 没有传递索引时 会按照字典的键来构造索引
s1_dict = pd.Series(data)
print(f'没有传递索引\n{s1_dict}')
# 字典类型传递索引时 索引时需要将索引标签与字典中的值一一对应
# 当传递的索引值无法找到与其对应的值时,使用 NaN(非数字)填充
s2_dict = pd.Series(data, index=['a', 'b', 'c', 'd'])
print(f'传递索引\n{s2_dict}')
运行结果显示如下:
没有传递索引
a 0
b 1
c 2
dtype: int64
传递索引
a 0.0
b 1.0
c 2.0
d NaN
dtype: float64
3.1.3 标量创建Series对象
import pandas as pd
import numpy as np
# 如果data是标量值,则必须提供索引: 标量值按照 index 的数量进行重复,并与其一一对应
s3 = pd.Series(6, index=[0,1,2,3])
print(f'标量值,则必须提供索引\n{s3}')
运行结果显示如下:
标量值,则必须提供索引
0 6
1 6
2 6
3 6
dtype: int64
3.1.4 位置索引访问Series数据
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(f'Series数据\n{s}')
# 位置索引 第一个位置索引:0
print(f'位置索引={s[0]}')
# 标签索引 第

本文全面介绍了Pandas库,它是Python数据分析必备高级工具。涵盖安装导入,详细讲解Series和DataFrame两种数据结构的创建、访问及属性,还介绍了描述性统计、遍历、排序、去重、缺失值处理等操作,以及对CSV和Excel文件的读写转换。
2592

被折叠的 条评论
为什么被折叠?



