用法:
DataFrame.convert_dtypes(infer_objects=True, convert_string=True, convert_integer=True, convert_boolean=True, convert_floating=True)
使用支持
pd.NA
的 dtypes 將列轉換為可能的最佳 dtypes。- infer_objects:布爾值,默認為真
是否應將對象 dtypes 轉換為可能的最佳類型。
- convert_string:布爾值,默認為真
對象 dtypes 是否應轉換為
StringDtype()
。- convert_integer:布爾值,默認為真
如果可能,是否可以轉換為整數擴展類型。
- convert_boolean:布爾值,默認為真
對象 dtypes 是否應轉換為
BooleanDtypes()
。- convert_floating:布爾值,默認為真
如果可能,是否可以轉換為浮點數擴展類型。如果
convert_integer
也是 True,如果可以將浮點數忠實地轉換為整數,則將優先考慮整數 dtype。
- Series或DataFrame
具有新 dtype 的輸入對象的副本。
參數:
返回:
注意:
默認情況下,
convert_dtypes
將嘗試將 Series(或 DataFrame 中的每個 Series)轉換為支持pd.NA
的 dtypes。通過使用選項convert_string
、convert_integer
、convert_boolean
和convert_boolean
,可以分別關閉對StringDtype
、整數擴展類型、BooleanDtype
或浮點擴展類型的單獨轉換。對於 object-dtyped 列,如果
infer_objects
是True
,則使用正常係列/數據幀構造期間的推理規則。然後,如果可能,轉換為StringDtype
、BooleanDtype
或適當的整數或浮點擴展類型,否則保留為object
。如果 dtype 是整數,則轉換為適當的整數擴展類型。
如果 dtype 是數字,並且由所有整數組成,則轉換為適當的整數擴展類型。否則,轉換為適當的浮點數擴展類型。
將來,隨著添加支持
pd.NA
的新 dtype,此方法的結果將更改為支持這些新 dtype。例子:
>>> df = pd.DataFrame( ... { ... "a":pd.Series([1, 2, 3], dtype=np.dtype("int32")), ... "b":pd.Series(["x", "y", "z"], dtype=np.dtype("O")), ... "c":pd.Series([True, False, np.nan], dtype=np.dtype("O")), ... "d":pd.Series(["h", "i", np.nan], dtype=np.dtype("O")), ... "e":pd.Series([10, np.nan, 20], dtype=np.dtype("float")), ... "f":pd.Series([np.nan, 100.5, 200], dtype=np.dtype("float")), ... } ... )
從具有默認 dtypes 的 DataFrame 開始。
>>> df a b c d e f 0 1 x True h 10.0 NaN 1 2 y False i NaN 100.5 2 3 z NaN NaN 20.0 200.0
>>> df.dtypes a int32 b object c object d object e float64 f float64 dtype:object
轉換 DataFrame 以使用可能的最佳 dtypes。
>>> dfn = df.convert_dtypes() >>> dfn a b c d e f 0 1 x True h 10 <NA> 1 2 y False i <NA> 100.5 2 3 z <NA> <NA> 20 200.0
>>> dfn.dtypes a Int32 b string c boolean d string e Int64 f Float64 dtype:object
從
np.nan
表示的一係列字符串和缺失數據開始。>>> s = pd.Series(["a", "b", np.nan]) >>> s 0 a 1 b 2 NaN dtype:object
獲取具有 dtype
StringDtype
的係列。>>> s.convert_dtypes() 0 a 1 b 2 <NA> dtype:string
相關用法
- Python pandas.DataFrame.combine_first用法及代碼示例
- Python pandas.DataFrame.corr用法及代碼示例
- Python pandas.DataFrame.count用法及代碼示例
- Python pandas.DataFrame.copy用法及代碼示例
- Python pandas.DataFrame.cov用法及代碼示例
- Python pandas.DataFrame.compare用法及代碼示例
- Python pandas.DataFrame.combine用法及代碼示例
- Python pandas.DataFrame.cumsum用法及代碼示例
- Python pandas.DataFrame.cummin用法及代碼示例
- Python pandas.DataFrame.cumprod用法及代碼示例
- Python pandas.DataFrame.clip用法及代碼示例
- Python pandas.DataFrame.cummax用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
- Python pandas.DataFrame.apply用法及代碼示例
- Python pandas.DataFrame.rename用法及代碼示例
- Python pandas.DataFrame.to_numpy用法及代碼示例
- Python pandas.DataFrame.dtypes用法及代碼示例
- Python pandas.DataFrame.truncate用法及代碼示例
- Python pandas.DataFrame.sparse.from_spmatrix用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.convert_dtypes。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。