Pandas2.2 DataFrame
Conversion
方法 | 描述 |
---|---|
DataFrame.astype(dtype[, copy, errors]) | 用于將 DataFrame 中的數據轉換為指定的數據類型 |
DataFrame.convert_dtypes([infer_objects, …]) | 用于將 DataFrame 中的數據類型轉換為更合適的類型 |
DataFrame.infer_objects([copy]) | 用于嘗試將 DataFrame 中的 object 類型的列轉換為更具體的類型(如 int64 、float64 或 boolean ) |
DataFrame.copy([deep]) | 用于創建 DataFrame 的副本 |
DataFrame.bool() | 用于將 DataFrame 轉換為布爾值 |
DataFrame.to_numpy([dtype, copy, na_value]) | 用于將 DataFrame 轉換為 NumPy 數組 |
pandas.DataFrame.to_numpy
pandas.DataFrame.to_numpy
是一個方法,用于將 DataFrame 轉換為 NumPy 數組。這個方法非常有用,特別是在需要將 DataFrame 中的數據傳遞給其他庫(如 NumPy、SciPy 或 scikit-learn)進行進一步處理時。
方法簽名
DataFrame.to_numpy(dtype=None, copy=True, na_value=None)
參數說明
dtype
: 字符串或數據類型,默認為None
,表示返回的 NumPy 數組的數據類型。如果為None
,則使用 DataFrame 中數據的默認類型。copy
: 布爾值,默認為True
,表示是否返回 DataFrame 數據的副本。如果設置為False
,則返回的數據數組與 DataFrame 共享內存。na_value
: 標量值,默認為None
,表示如何表示 DataFrame 中的缺失值(NaN)。如果為None
,則使用 NumPy 的默認行為(即np.nan
)。
返回值
- 返回一個 NumPy 數組,包含 DataFrame 中的數據。
示例
假設有一個 DataFrame 如下:
import pandas as pd
import numpy as npdata = {'A': [1, 2, 3],'B': [1.1, 2.2, 3.3],'C': ['x', 'y', 'z']
}df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)
輸出:
原始 DataFrame:A B C
0 1 1.1 x
1 2 2.2 y
2 3 3.3 z數據類型:
A int64
B float64
C object
dtype: object
示例1:將 DataFrame 轉換為 NumPy 數組(默認參數)
array_default = df.to_numpy()
print("轉換后的 NumPy 數組 (默認參數):")
print(array_default)
print("\n數據類型:")
print(array_default.dtype)
結果:
轉換后的 NumPy 數組 (默認參數):
[[1 1.1 'x'][2 2.2 'y'][3 3.3 'z']]數據類型:
object
示例2:不復制數據
array_no_copy = df.to_numpy(copy=False)
print("轉換后的 NumPy 數組 (不復制數據):")
print(array_no_copy)
print("\n數據類型:")
print(array_no_copy.dtype)
結果:
轉換后的 NumPy 數組 (不復制數據):
[[1 1.1 'x'][2 2.2 'y'][3 3.3 'z']]數據類型:
object
示例3:指定缺失值表示為 -1
df_with_na = pd.DataFrame({'A': [1, 2, np.nan],'B': [1.1, np.nan, 3.3],'C': ['x', 'y', np.nan]
})array_with_na = df_with_na.to_numpy(na_value=-1)
print("轉換后的 NumPy 數組 (指定缺失值為 -1):")
print(array_with_na)
print("\n數據類型:")
print(array_with_na.dtype)
結果:
轉換后的 NumPy 數組 (指定缺失值為 -1):
[[ 1. 1.1 -1. ][ 2. -1. 1. ][ -1. 3.3 -1. ]]數據類型:
float64
通過這些示例,可以看到 pandas.DataFrame.to_numpy
方法如何將 DataFrame 轉換為 NumPy 數組,并且如何使用不同的參數來控制轉換的行為。
注意事項
to_numpy
方法可以將 DataFrame 轉換為 NumPy 數組。- 可以通過
dtype
參數指定返回的 NumPy 數組的數據類型。 - 設置
copy=True
返回 DataFrame 數據的副本,而不會共享內存。 - 設置
copy=False
返回的數據數組與 DataFrame 共享內存。 - 可以通過
na_value
參數指定如何表示 DataFrame 中的缺失值(NaN)。
示例代碼及驗證
為了驗證 pandas.DataFrame.to_numpy
方法的效果,可以運行上述示例代碼并查看輸出結果。
import pandas as pd
import numpy as np# 創建一個示例 DataFrame
data = {'A': [1, 2, 3],'B': [1.1, 2.2, 3.3],'C': ['x', 'y', 'z']
}df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)# 將 DataFrame 轉換為 NumPy 數組(默認參數)
array_default = df.to_numpy()
print("\n轉換后的 NumPy 數組 (默認參數):")
print(array_default)
print("\n數據類型:")
print(array_default.dtype)# 不復制數據
array_no_copy = df.to_numpy(copy=False)
print("\n轉換后的 NumPy 數組 (不復制數據):")
print(array_no_copy)
print("\n數據類型:")
print(array_no_copy.dtype)# 創建一個包含缺失值的 DataFrame
df_with_na = pd.DataFrame({'A': [1, 2, np.nan],'B': [1.1, np.nan, 3.3],'C': ['x', 'y', np.nan]
})# 指定缺失值表示為 -1
array_with_na = df_with_na.to_numpy(na_value=-1)
print("\n轉換后的 NumPy 數組 (指定缺失值為 -1):")
print(array_with_na)
print("\n數據類型:")
print(array_with_na.dtype)
運行結果
運行上述代碼后,你會看到以下輸出:
原始 DataFrame:A B C
0 1 1.1 x
1 2 2.2 y
2 3 3.3 z數據類型:
A int64
B float64
C object
dtype: object轉換后的 NumPy 數組 (默認參數):
[[1 1.1 'x'][2 2.2 'y'][3 3.3 'z']]數據類型:
object轉換后的 NumPy 數組 (不復制數據):
[[1 1.1 'x'][2 2.2 'y'][3 3.3 'z']]數據類型:
object轉換后的 NumPy 數組 (指定缺失值為 -1):
[[ 1. 1.1 -1. ][ 2. -1. 1. ][ -1. 3.3 -1. ]]數據類型:
float64
通過這些示例,可以看到 pandas.DataFrame.to_numpy
方法如何將 DataFrame 轉換為 NumPy 數組,并且如何使用不同的參數來控制轉換的行為。