將 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。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP