将 NumPy 数组转换为 Pandas Series
NumPy 数组是 N 维数组,也称为 ndarray,它是 NumPy 库的主要对象。同样,Pandas Series 是 Pandas 库中的一维数据结构。Pandas 和 NumPy 都是 Python 中广泛使用的开源库。下面我们可以看到一维 NumPy 数组。
NumPy array array([1, 2, 3, 4])
Pandas Series 是一种一维数据结构,具有标记索引,它与一维 NumPy 数组非常相似。
Pandas Series: 0 1 1 2 2 3 3 4 4 5 dtype: int64
从上面的代码块中,我们可以看到 Pandas Series 对象,它有 5 个整数元素,每个元素都用位置索引值标记。在下面的文章中,我们将学习如何将 NumPy 数组转换为 Pandas Series 对象。
输入输出场景
让我们看看输入输出场景,以了解如何将 NumPy 数组转换为 Pandas Series。
假设我们有一个包含一些值的一维 NumPy 数组,在输出中,我们将看到从 NumPy 数组转换而来的 Pandas Series 对象。
Input numpy array: [1 2 3 4] Output Series: 0 1 1 2 2 3 3 4 dtype: int64
要将 NumPy 数组转换为 Pandas Series,我们可以使用 pandas.Series() 方法。
pandas.Series() 方法
pandas.Series() 方法用于根据给定数据创建 Series 对象。该方法返回一个 Series 对象。以下是该方法的语法:
pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
其中,
data:可迭代对象、字典或标量值。
index:使用此参数指定行标签。默认值为 0 到 n-1。
dtype:这是一个字符串值,用于指定 Series 的数据类型。(可选)
name:这是一个字符串值,用于指定 Series 对象的名称。(可选)
copy:从输入复制数据,默认为 False。
示例
让我们使用 pandas.Series() 方法将 NumPy 数组转换为 Pandas Series。
# importing the modules import numpy as np import pandas as pd # Creating a 1 dimensional numpy array numpy_array = np.array([1, 2, 8, 3, 0, 2, 9, 4]) print("Input numpy array:") print(numpy_array) # Convert NumPy array to Series s = pd.Series(numpy_array) print("Output Series:") print(s)
输出
Input numpy array: [1 2 8 3 0 2 9 4] Output Series: 0 1 1 2 2 8 3 3 4 0 5 2 6 9 7 4 dtype: int64
最初,通过使用整数元素创建了一个一维 NumPy 数组,然后将该数组转换为 Pandas Series 对象。
示例
在这个例子中,Series 是从浮点数的 NumPy 数组转换而来的。在转换过程中,我们将使用 index 参数为 Series 对象指定行标签。
# importing the modules import numpy as np import pandas as pd # Creating a 1 dimensional numpy array numpy_array = np.array([1, 2.8, 3.0, 2, 9, 4.2]) print("Input numpy array:") print(numpy_array) # Convert NumPy array to Series s = pd.Series(numpy_array, index=list('abcdef')) print("Output Series:") print(s)
输出
Input numpy array: [1. 2.8 3. 2. 9. 4.2] Output Series: a 1.0 b 2.8 c 3.0 d 2.0 e 9.0 f 4.2 dtype: float64
将字符串列表提供给 Series 构造函数的 index 参数。
示例
在这个例子中,我们将把一个二维 NumPy 数组转换为 Series 对象。
# importing the modules import numpy as np import pandas as pd # Creating a numpy array numpy_array = np.array([[4, 1], [7, 2], [2, 0]]) print("Input numpy array:") print(numpy_array) # Convert NumPy array to Series s = pd.Series(map(lambda x: x, numpy_array)) print("Output Series:") print(s)
输出
Input numpy array: [[4 1] [7 2] [2 0]] Output Series: 0 [4, 1] 1 [7, 2] 2 [2, 0] dtype: object
通过将 map 和 lambda 函数结合使用,我们在这里将二维 NumPy 数组转换为 Series 对象。转换后的 Series 的数据类型为对象类型,每个 Series 元素都包含一个整数数组。
示例
让我们再举一个例子,将二维数组转换为 Series 对象。
# importing the modules import numpy as np import pandas as pd # Creating a numpy array numpy_array = np.array([[4, 1], [7, 2], [2, 0]]) print("Input numpy array:") print(numpy_array) # Convert NumPy array to Series s = pd.Series(map(lambda x: x[0], numpy_array)) print("Output Series:") print(s)
输出
Input numpy array: [[4 1] [7 2] [2 0]] Output Series: 0 4 1 7 2 2 dtype: int64
这里 Series 是使用二维 NumPy 数组的第一行元素创建的。