ITPub博客

Pandas序列的轻量级介绍

原创 人工智能 作者:李佳惠 时间:2018-10-09 09:22:21 0 删除 编辑

Pandas序列的轻量级介绍

Pandas序列(Pandas Series)

Pandas是一个开源的BSD(Berkeley Software Distribution)许可库,为Python编程语言提供了高性能、易于使用的数据结构和数据分析工具。

Pandas提供的数据结构有两种不同的类型:

  1. Pandas数据框架(Pandas DataFrame)

  2. Pandas序列

我们将在这篇文章中介绍Pandas序列。

注意:建议阅读之前关于Pandas DataFrame的帖子,然后再继续阅读本文,以便更好地了解Pandas序列。

https://towardsdatascience.com/pandas-dataframe-a-lightweight-intro-680e3a212b96

Pandas序列是什么?

从技术上讲,Pandas序列是一种能够保存任何数据类型的一维标记数组。

通俗地说,Pandas序列只不过是excel表中的专栏。如下图所示,例如人员的姓名、年龄和职位的序列。  

Pandas序列的轻量级介绍

Pandas序列

因此,就Pandas DataFrame而言,Pandas序列表示内存中的单个列,它可以是独立的,也可以属于Pandas DataFrame。

注意:Pandas序列可以有自己的独立存在,而不属于Pandas DataFrame。

如何创建Pandas序列?

可以使用Python列表或NumPy数组创建Pandas序列。必须要记住,与Python列表不同,Pandas序列将始终包含相同类型的数据。这使得NumPy阵列成为创建Pandas序列的更好选择。

以下使用上述两种方法来创建Pandas序列:

Pandas序列的轻量级介绍


这是它们的示例

Pandas序列的轻量级介绍

Result of → series_list = pd.Series([1,2,3,4,5,6])

Pandas序列的轻量级介绍

Result of → series_np = pd.Series(np.array([10,20

就像创建Pandas DataFrame时一样,Pandas序列也会默认生成行索引号,这是从0开始的一系列增量数字。

你可能已经猜到在创建Pandas序列时可以拥有自己的行索引值。我们只需要传递索引参数,这些参数采用相同类型的列表或NumPy数组。

以下示例使用NumPy生成的序列:

Pandas序列的轻量级介绍


Pandas序列的轻量级介绍

Result of → series_index = pd.Series(np.array([10,

以下示例使用字符串作为行索引:

Pandas序列的轻量级介绍


Pandas序列的轻量级介绍

Result of → series_index = pd.Series(np.array([10,

我们可以使用Pandas序列的行索引作为:

Pandas序列的轻量级介绍


无论我们在创建系列时是否传递了列表或NumPy数组,它都会返回NumPy数组

从python Dictionary创建Pandas序列

正如我们在创建Pandas DataFrame时所看到的,从python词典创建DataFrame非常容易,因为键映射到列名,而值对应于列值列表。

那么在创建Pandas序列时它如何映射?

如果我们从python字典创建一个Pandas序列,则该键成为行索引,而该值成为该行索引的值。

举个例子,让我们看看具有单个键值对的一个简单的字典会发生什么

Pandas序列的轻量级介绍


这是输出的示例  

Pandas序列的轻量级介绍

Result of → Code block Above

如果字典中的值包含一个项目列表,情况不会改变。列表项仍然是单行索引的一部分,

Pandas序列的轻量级介绍


Pandas序列的轻量级介绍

Result of → series_dict = pd.Series(t_dict)

从Pandas DataFrame中获取Pandas序列

虽然Pandas序列本身对于数据分析非常有用,并且提供了许多有用的辅助函数,但是大多数情况下,分析要求将迫使我们一起使用Pandas DataFrame和Pandas序列。

让我们首先创建一个Pandas DataFrame,就像我们在这里创建的一样:

Pandas序列的轻量级介绍


以下是生成的DataFrame的示例  

Pandas序列的轻量级介绍


从字典创建DataFrame的结果

DataFrame提供了两种访问列的方法,即使用字典语法df ['column_name']或df.column_name。每次我们使用这些表示来获得列时,我们都会得到一个Pandas序列。在上面的例子中,我们可以通过访问列来获得Pandas序列(即单列)

Pandas序列的轻量级介绍


Pandas序列的轻量级介绍

Pandas序列姓名  

Pandas序列的轻量级介绍

Pandas序列年龄  

Pandas序列的轻量级介绍

Pandas序列职位

通过迭代DataFrame的列来获取Pandas序列

如果我们不知道列的名称怎么办?

Pandas DataFrame是可迭代的,我们可以迭代各个列来获得Pandas序列

Pandas序列的轻量级介绍


使用Pandas序列创建DataFrame(独立或组合)

Pandas DataFrame只是一个序列(1+)的集合。我们可以使用单个Pandas序列或组合多个Pandas序列来生成DataFrame

例如,让我们从组合series_name和series_age生成一个DataFrame:

Pandas序列的轻量级介绍


令人惊讶的是,生成的DataFrame应该看起来  

Pandas序列的轻量级介绍

df_from_series

是的,Pandas序列的行索引成为列,而列成为行索引值。你可以认为这类似于矩阵的转置。即使我们提供单个Pandas序列来创建DataFrame也是如此:

Pandas序列的轻量级介绍


Pandas序列的轻量级介绍

df_from_series_single

但是,当我们从Pandas序列中删除列表/数组表示法时,不会发生这种情况。例如

Pandas序列的轻量级介绍


将导致保留Pandas序列的列名和行索引

Pandas序列的轻量级介绍

df_from_series

注意:不幸的是,这仅限于一个序列,因为DataFrame API不会为序列带来多个参数。

使用Python Dict创建DataFrame行为

当我们将python dictionaries作为数组传递以创建DataFrame时,将会观察到相同的行为。让我们看看之前创建的t_dict = {'a':1,'b':2,'c':3}

Pandas序列的轻量级介绍


结果DataFrame看起来像  

Pandas序列的轻量级介绍

ds

其中键表示为列,否则如果我们创建了一个序列,则表示为行索引。

我们甚至可以组合多个t_dict来创建DataFrame

Pandas序列的轻量级介绍


Pandas序列的轻量级介绍

ds

序列辅助函数

就像pandas DataFrame一样,序列也有多组辅助函数用于数据分析。

请注意,Pandas DataFrame的所有列辅助函数都可以与Pandas序列一起使用。一些例子是

Pandas序列的轻量级介绍


迭代序列

就像python中的许多其他数据结构一样,可以使用简单的for循环迭代序列

Pandas序列的轻量级介绍


我们也可以迭代索引的序列行:

Pandas序列的轻量级介绍


这就是Pandas序列的基本用法。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31545819/viewspace-2215625/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-09-19

  • 博文量
    27
  • 访问量
    28577