将 NumPy 数组转换为带有标题的 Pandas 数据框
Pandas 和 NumPy 都是 Python 中广泛使用的开源库。Numpy 代表 Numerical Python,是科学计算的核心库。NumPy 数组是一个强大的 N 维数组对象,以行和列的形式表示。
NumPy array array([[1, 2], [3, 4]])
Pandas 为 Python 提供了高性能的数据操作和分析工具,它允许我们处理类似电子表格、CSV 和 SQL 数据的表格数据。它具有 DataFrame 和 Series 等数据结构,主要用于数据分析。
DataFrame 是一种二维带标签的数据结构,用于以行和列格式表示数据。每列中的数据可能具有不同的数据类型。
DataFrame: Col1 Col2 0 a i 1 b j 2 c k 3 d l
在本例中,我们将演示如何将 NumPy 数组转换为带有标题的 Pandas 数据框。
输入输出场景
让我们看看输入输出场景,以了解如何将 NumPy 数组转换为 Pandas 数据框。
假设我们有一个包含一些值的二维 NumPy 数组,在输出中,我们将看到一个带有列名的 DataFrame。
Input numpy array: [[1 2] [3 4]] Output DataFrame: header1 header2 0 1 2 1 3 4
要使用标题从 NumPy 数组创建 Pandas DataFrame,我们可以使用 pandas DataFrame() 方法,通过使用 columns 参数,我们可以在创建数据框对象时指定列标题。
使用 DataFrame() 方法
pandas.DataFrame() 方法用于基于给定数据创建 DataFrame 对象。以下是语法:
pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)
其中,
data − NumPy 数组、可迭代对象、字典或 DataFrame。
index − 使用此参数指定行标签。默认值为 0 到 n-1。
columns − 使用此参数指定列标签/标题。默认情况下,范围索引为 0 到 n-1。
dtype − 默认值为 None。
copy − 从输入复制数据,默认值为 None。
示例
在本例中,我们将使用带有标题的 NumPy 数组创建 Pandas 数据框。首先,我们将使用 np.array() 方法创建一个二维 NumPy 数组,然后将其转换为 Pandas DataFrame。
import numpy as np import pandas as pd # Creating a 2 dimensional numpy array numpy_array = np.array([[1, 2], [3, 4]]) print("Input numpy array:") print(numpy_array) # Convert NumPy array to DataFrame df = pd.DataFrame(numpy_array, columns = ['header1', 'header2']) print("Output DataFrame:") print(df)
输出
Input numpy array: [[1 2] [3 4]] Output DataFrame: header1 header2 0 1 2 1 3 4
通过将名称列表分配给 DataFrame() 方法的 columns 参数,我们可以指定标题。
示例
在这里,我们将标题名称列表指定给 DataFrame() 方法的 columns 参数。
import numpy as np import pandas as pd # Creating a 2 dimensional numpy array numpy_array = np.array(np.random.randn(10,3)) print("Input numpy array:") print(numpy_array) headers = ['Acol','Ccol','Bcol'] # Convert NumPy array to DataFrame df = pd.DataFrame(numpy_array, columns = headers) print("Output DataFrame:") print(df)
输出
Input numpy array: [[ 0.51863463 -1.04180497 -0.53410509] [-1.67632426 -1.05587564 1.26963293] [ 0.1904154 1.89355907 -0.7596976 ] [-1.20464873 -0.45258193 -0.17936747] [ 0.17513833 0.78481916 -1.52235579] [-1.38108854 0.28470621 0.52897571] [-0.62921794 0.95548506 0.03370699] [ 0.30533368 -0.09951884 0.38484346] [ 0.06951039 0.94497233 0.82353788] [ 0.82560537 2.10383935 0.52618909]] Output DataFrame: Acol Ccol Bcol 0 0.518635 -1.041805 -0.534105 1 -1.676324 -1.055876 1.269633 2 0.190415 1.893559 -0.759698 3 -1.204649 -0.452582 -0.179367 4 0.175138 0.784819 -1.522356 5 -1.381089 0.284706 0.528976 6 -0.629218 0.955485 0.033707 7 0.305334 -0.099519 0.384843 8 0.069510 0.944972 0.823538 9 0.825605 2.103839 0.526189
最初,NumPy 数组是使用随机数创建的,然后它被转换为具有列标签的数据框。
示例
在本例中,我们将通过指定 NumPy 数组元素切片的字典来创建数据框。
# importing packages import numpy as np import pandas as pd # Creating a 2 dimensional numpy array numpy_array = np.array([[5.8, 2.8], [6.0, 2.2]]) print("Input numpy array:") print(numpy_array) # Convert NumPy array to DataFrame df = pd.DataFrame({'Column1': numpy_array[:, 0], 'Column2': numpy_array[:, 1]}) print("Output DataFrame:") print(df)
输出
Input numpy array: [[5.8 2.8] [6. 2.2]] Output DataFrame: Column1 Column2 0 5.8 2.8 1 6.0 2.2
我们已成功地从带有标题的 NumPy 数组创建了 Pandas DataFrame。