将 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。

更新于: 2023年5月30日

2K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告