astype()方法通常用於將Pandas對象轉換為指定的dtype.astype()函數。它還可以將任何合適的現有列轉換為分類類型。
當我們想將特定的列數據類型轉換為另一種數據類型時, 它就可以使用。我們還可以使用Python字典的輸入來一次更改多個列類型。在字典中, 鍵標簽對應於列名, 值標簽對應於我們要在列中使用的新數據類型。
句法
DataFrame.astype(dtype, copy=True, errors='raise', **kwargs)
參數
dtype:它使用numpy.dtype或Python類型將整個pandas對象轉換為相同類型。它還可以使用{col:dtype, ?}, 其中col表示列標簽, 而dtype是numpy.dtype或Python類型, 用於將DataFrame的一個或多個列轉換為特定於列的類型。
復制:如果copy = True, 則返回一個副本。設置copy = False時要小心, 因為對值的更改可能會傳播到其他Pandas對象。
錯誤:對於提供的dtype, 它控制對無效數據的異常引發。
- 引發:它允許引發異常。
- ignore:忽略異常。錯誤返回原始對象。
kwargs:這是一個關鍵字參數, 將傳遞給構造函數。
強制轉換:它返回與調用方相同的類型。
例子
import pandas as pd a = {'col1': [1, 2], 'col2': [3, 4]} info = pd.DataFrame(data=a) info.dtypes
# We convert it into 'int64' type. info.astype('int64').dtypes info.astype({'col1': 'int64'}).dtypes
x = pd.Series([1, 2], dtype='int64') x.astype('category')
cat_dtype = pd.api.types.CategoricalDtype(categories=[2, 1], ordered=True) x.astype(cat_dtype)
x1 = pd.Series([1, 2]) x2 = x1.astype('int64', copy=False) x2[0] = 10 x1 # note that x1[0] has changed too
輸出
0 12 1 2 dtype: int64
pandas轉數組
我們可以使用numpy.array
來創建一個矩陣,當然這個矩陣可以是 N 維的,創建的時候,需要傳入一個數組,數組是多少維,創建的矩陣就是多少維. 創建矩陣的時候,也可以傳入第二個參數(dtype), 指定數據類型.
np.array(pandas)
數組轉pandas
pandas.DataFrame(numpy)
import numpy as np array = np.array([[1,2,3], [4,5,6], [7,8,9]], dtype=np.float64) # array([[1, 2, 3], # [4, 5, 6], # [7, 8, 9]]) type(array) numpy.ndarray