將 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+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.