當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.DataFrame.convert_dtypes用法及代碼示例


用法:

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_stringconvert_integerconvert_booleanconvert_boolean ,可以分別關閉對 StringDtype 、整數擴展類型、 BooleanDtype 或浮點擴展類型的單獨轉換。

對於 object-dtyped 列,如果 infer_objectsTrue ,則使用正常係列/數據幀構造期間的推理規則。然後,如果可能,轉換為 StringDtypeBooleanDtype 或適當的整數或浮點擴展類型,否則保留為 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

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.convert_dtypes。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。