将 NumPy 数组转换为带标题的 Pandas 数据框
Pandas 和 NumPy 都是 Python 中有效使用的开源库。Numpy 代表 Numerical Python。这是科学计算的核心库。Numpy 数组是一个强大的 N 维数组对象,以行和列的形式呈现。
NumPy 数组 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。
输入 numpy 数组: [[1 2] [3 4]] 输出数据框: 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 数组、Iterable、字典或 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 # 创建二维 numpy 数组 numpy_array = np.array([[1, 2], [3, 4]]) print("输入 numpy 数组:") print(numpy_array) # 将 NumPy 数组转换为 DataFrame df = pd.DataFrame(numpy_array, columns = ['header1', 'header2']) print("输出 DataFrame:") print(df)
输出
输入 numpy 数组: [[1 2] [3 4]] 输出数据框: header1 header2 0 1 2 1 3 4
通过将名称列表分配给 DataFrame() 方法的 columns 参数,我们可以指定标题。
示例
在这里,我们将将标题名称列表指定给 DataFrame() 方法的 columns 参数。
import numpy as np import pandas as pd # 创建二维 numpy 数组 numpy_array = np.array(np.random.randn(10,3)) print("输入 numpy 数组:") print(numpy_array) headers = ['Acol','Ccol','Bcol'] # 将 NumPy 数组转换为 DataFrame df = pd.DataFrame(numpy_array, columns = headers) print("输出 DataFrame:") print(df)
输出
输入 numpy 数组: [[ 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]] 输出数据框: 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 数组元素的字典来创建数据框。
# 导入包 import numpy as np import pandas as pd # 创建二维 numpy 数组 numpy_array = np.array([[5.8, 2.8], [6.0, 2.2]]) print("输入 numpy 数组:") print(numpy_array) # 将 NumPy 数组转换为数据框 df = pd.DataFrame({'Column1': numpy_array[:, 0], 'Column2': numpy_array[:, 1]}) print("输出 DataFrame:") print(df)
输出
输入 numpy 数组: [[5.8 2.8] [6. 2.2]] 输出数据框: Column1 Column2 0 5.8 2.8 1 6.0 2.2
我们已经成功地从带有标题的 numpy 数组创建了一个 pandas DataFrame。