Python数据科学:Pandas数据处理教程

本文详细介绍了Pandas的核心对象,包括Series、DataFrame和Index,并讲解了如何选择和处理数据,以及如何处理缺失值。此外,还讨论了多级索引和数据合并操作,如Concat与Append,帮助读者深入理解Pandas在数据科学中的应用。
摘要由CSDN通过智能技术生成

Pandas对象简介

Pandas的Series对象

Pandas 的 Series 对象是一个带索引数据构成的一维数组, Series 对象将一组数据和一组索引绑定在一起,我们可以通过 values 属性和 index 属性获取数据。values 属性返回的结果与 NumPy 数组类似,index 属性返回的结果是一个类型为 pd.Index 的类数组对象。

Serise是通用的NumPy数组

NumPy 数组通过隐式定义的整数索引获取数值,而 Pandas 的 Series 对象用一种显式定义的索引与数值关联。显式索引的定义让 Series 对象拥有了更强的能力。例如,索引不再仅仅是整数,还可以是任意想要的类型。
data = pd.Series([0.25, 0.5, 0.75, 1.0],index=[‘a’, ‘b’, ‘c’, ‘d’])

**Series是特殊的字典 **
你可以把 Pandas 的 Series 对象看成一种特殊的 Python 字典。字典是一种将任意键映射到 一组任意值的数据结构,而 Series 对象其实是一种将类型键映射到一组类型值的数据结 构。类型至关重要:就像 NumPy 数组背后特定类型的经过编译的代码使得它在某些操作 上比普通的 Python 列表更加高效一样,Pandas Series 的类型信息使得它在某些操作上比 Python 的字典更高效

**创建Series对象 **
经见过几种创建 Pandas 的 Series 对象的方法,都是像这样的形式:
pd.Series(data, index=index)
其中,index 是一个可选参数,data 参数支持多种数据类型。
data 可以是列表或 NumPy 数组,这时 index 默认值为整数序列; 也可以是一个标量,创建 Series 对象时会重复填充到每个索引上;还可以是一个字典,index 默认是排序的字典键;

Pandas的DataFrame对象

DataFrame是通用的NumPy数组
如果将 Series 类比为带灵活索引的一维数组,那么 DataFrame 就可以看作是一种既有灵活 的行索引,又有灵活列名的二维数组。就像你可以把二维数组看成是有序排列的一维数组 一样,你也可以把 DataFrame 看成是有序排列的若干 Series 对象。这里的“排列”指的是 它们拥有共同的索引。
和 Series 对象一样,DataFrame 也有一个 index 属性可以获取索引标签,另外,DataFrame 还有一个 columns 属性,是存放列标签的 Index 对象。

**DataFrame是特殊的字典 **
这里需要注意的是,在 NumPy 的二维数组里,data[0] 返回第一行;而在 DataFrame 中, data[‘col0’] 返回第一列。因此,最好把 DataFrame 看成一种通用字典,而不是通用数组,即使这两种看法在不同情况下都是有用的。

**创建DataFrame对象 **
(1) 通过单个 Series 对象创建。DataFrame 是一组 Series 对象的集合,可以用单个 Series 创建一个单列的 DataFrame。
(2) 通过字典列表创建。任何元素是字典的列表都可以变成 DataFrame,即使字典中有些键不存在,Pandas 也会用缺失值 NaN(不是数字,not a number)来表示。
(3) 通过 Series 对象字典创建。
(4) 通过 NumPy 二维数组创建。假如有一个二维数组,就可以创建一个可以指定行列索引 值的 DataFrame。
(5) 通过NumPy 结构化数组创建

Pandas的Index对象

Pandas 的 Index 对象是一个很有趣的数据结构,可以将它看作是一个不可变数组或有序集合。

将Index看作不可变数组
Index 对象的许多操作都像数组。Index 对象与 NumPy 数组之间的不同在于,Index 对象的索引是不可变的,也就是说不能 通过通常的方式进行调整。

**将Index看作有序集合 **
Pandas 对象被设计用于实现许多操作,如连接(join)数据集,其中会涉及许多集合操作。 Index 对象遵循 Python 标准库的集合(set)数据结构的许多习惯用法,包括并集【|】、交集【&】、 差集【 ^ 】等。
indA = pd.Index([1, 3, 5, 7, 9])
indB = pd.Index(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值