Python Pandas中Series和向量之間的區別
Pandas是一個著名的開源Python庫,它提供了廣泛的功能,使資料分析更有效率。Pandas包主要用於資料預處理活動,包括資料清洗、轉換和操作。因此,它是分析師和資料科學家的一個非常有用的工具。本文討論了Pandas中兩個最流行的資料結構——Series和DataFrame,以及Series和向量的比較。
Python Pandas Series
在Python Pandas庫中,Series是一個一維的帶標籤陣列,可以儲存任何資料型別。它類似於電子表格中的一列或R中的資料框。Series是透過將值列表傳遞給pd.Series()函式建立的,可以使用索引或標籤訪問。
標籤必須是可雜湊型別,但不必唯一。該物件具有多種用於處理索引的方法,並支援基於整數和標籤的索引。
它具有以下引數:
資料 - 任何列表、字典或標量值都可以用作資料。
索引 - 索引的值應該既唯一又可雜湊。它必須與資料大小相同。如果未提供索引,則預設使用np.arrange(n)。
Dtype - 它指的是Series的資料型別。
copy - 用於複製資訊。
建立Series
我們可以透過四種方式建立Series:
使用Pandas庫中的pd.Series函式
import pandas as pd import numpy as np # Create a series from a list s = pd.Series([1, 3, 5, np.nan, 6, 8]) print(s)
輸出
0 1.0 1 3.0 2 5.0 3 NaN 4 6.0 5 8.0 dtype: float64
這將建立一個Pandas Series,其值為1, 3, 5, NaN, 6, 8。
直接從NumPy陣列建立Series
import numpy as np import pandas as pd # Create a NumPy array data = np.array([1, 3, 5, np.nan, 6, 8]) # Create a series from the array s = pd.Series(data) print(s)
輸出
0 1.0 1 3.0 2 5.0 3 NaN 4 6.0 5 8.0 dtype: float64
這兩種方法都將建立一個Pandas Series,其索引是從0開始的整數範圍。您也可以在建立Series時指定自己的索引值。
從標量值建立Series
建立帶有標量值的Series是今天我們將要研究的最後一種方法。在這種情況下,您可以用單個值提供資料,並使其在索引持續時間內重複。
示例
import pandas as pd
if __name__ == '__main__':
series = pd.Series(data=3.,
index=['a', 'b', 'c', 'd'],
name='series_from_scalar')
print(series)
輸出
a 3.0 b 3.0 c 3.0 d 3.0 Name: series_from_scalar, dtype: float64
從ndarray建立Series
NumPy的random.randint()函式是建立填充隨機數的ndarray的最簡單方法之一。
示例
import numpy as np
import pandas as pd
if __name__ == '__main__':
data = np.random.randint(0, 10, 5)
series = pd.Series(data=data,
index=['a', 'b', 'c', 'd', 'e'],
name='series_from_ndarray')
print(series)
輸出
a 5 b 7 c 0 d 8 e 5 Name: series_from_ndarray, dtype: int64
DataFrame
另一方面,向量是一維數值陣列。在Pandas中,向量可以用具有單個dtype(例如,整數、浮點數或物件)的Series表示。向量通常用於數學和統計運算,可以使用pd.to_numeric()函式或從資料框中選擇單個列來建立。
您可以使用pd從多個數據源(包括字典、二維NumPy陣列和Series)建立DataFrame。使用Pandas Series字典建立Pandas DataFrame
索引必須與Series長度相同。如果未指定索引,則將自動建立索引值:[0, …, len(data) – 1]。
#Creating a DataFrame from a dictionary of Series
import pandas as pd
data = pd.DataFrame({
"Class 1": pd.Series([22, 33, 38], index=["math avg", "science avg", "english avg"]),
"Class 2": pd.Series([45, 28, 36], index=["math avg", "science avg", "english avg"]),
"Class 3": pd.Series([32, 41, 47], index=["math avg", "science avg", "english avg"])
})
print(data)
輸出
Class 1 Class 2 Class 3 math avg 22 45 32 science avg 33 28 41 english avg 38 36 47
以下是Python Pandas中Series和DataFrame之間差異的總結
DataFrame |
Series |
|
|---|---|---|
資料結構 |
二維表 |
一維陣列 |
可以包含異構資料 |
是 |
是 |
可以包含列標籤 |
是 |
否 |
可以包含行標籤 |
是 |
否 |
可以按列或行標籤索引 |
是 |
是 |
可以按列或行標籤切片 |
是 |
是 |
支援算術運算 |
是 |
是 |
支援算術運算 |
是 |
是 |
結論
總而言之,Python Pandas中Series和向量的主要區別在於:
Series可以儲存任何資料型別,而向量只能儲存數值。
Series具有標籤索引,而向量沒有。
Series可以使用標籤或索引訪問,而向量只能使用索引訪問。
理解Series和向量之間的區別對於選擇適合您資料的適當資料結構以及在Pandas中操作和分析資料非常有用。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP