pandas DataFrame convert_dtypes的具體使用
Pandas2.2 DataFrame
Conversion
| 方法 | 描述 |
|---|---|
| DataFrame.astype(dtype[, copy, errors]) | 用于將 DataFrame 中的數(shù)據(jù)轉換為指定的數(shù)據(jù)類型 |
| DataFrame.convert_dtypes([infer_objects, …]) | 用于將 DataFrame 中的數(shù)據(jù)類型轉換為更合適的類型 |
pandas.DataFrame.convert_dtypes
pandas.DataFrame.convert_dtypes 是一個方法,用于將 DataFrame 中的數(shù)據(jù)類型轉換為更合適的類型。這個方法可以幫助自動推斷和轉換數(shù)據(jù)類型,使得數(shù)據(jù)處理更加高效和準確。
方法簽名
DataFrame.convert_dtypes(infer_objects=True, convert_string=True, convert_integer=True, convert_boolean=True, convert_floating=True, dtype_backend='numpy_nullable')
參數(shù)說明
infer_objects: 布爾值,默認為True,表示是否嘗試將object類型的列轉換為更具體的類型(如int64或float64)。convert_string: 布爾值,默認為True,表示是否將object類型的列轉換為string類型。convert_integer: 布爾值,默認為True,表示是否將object類型的列轉換為integer類型。convert_boolean: 布爾值,默認為True,表示是否將object類型的列轉換為boolean類型。convert_floating: 布爾值,默認為True,表示是否將object類型的列轉換為floating類型。dtype_backend: 字符串,默認為'numpy_nullable',表示使用的數(shù)據(jù)類型后端??梢允?nbsp;'numpy_nullable'或'pyarrow'。
返回值
- 返回一個新的 DataFrame,其中數(shù)據(jù)類型已轉換。
示例
假設有一個 DataFrame 如下:
import pandas as pd
data = {
'A': ['1', '2', '3'],
'B': ['1.1', '2.2', '3.3'],
'C': ['True', 'False', 'True'],
'D': ['x', 'y', 'z']
}
df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
print("\n數(shù)據(jù)類型:")
print(df.dtypes)
輸出:
原始 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A object
B object
C object
D object
dtype: object
示例1:使用默認參數(shù)轉換數(shù)據(jù)類型
df_converted = df.convert_dtypes()
print("轉換后的 DataFrame:")
print(df_converted)
print("\n數(shù)據(jù)類型:")
print(df_converted.dtypes)
結果:
轉換后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A Int64
B Float64
C boolean
D string
dtype: object
示例2:禁用 convert_string
df_converted_no_string = df.convert_dtypes(convert_string=False)
print("禁用 convert_string 后的 DataFrame:")
print(df_converted_no_string)
print("\n數(shù)據(jù)類型:")
print(df_converted_no_string.dtypes)
結果:
禁用 convert_string 后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A Int64
B Float64
C boolean
D object
dtype: object
示例3:禁用 convert_integer
df_converted_no_integer = df.convert_dtypes(convert_integer=False)
print("禁用 convert_integer 后的 DataFrame:")
print(df_converted_no_integer)
print("\n數(shù)據(jù)類型:")
print(df_converted_no_integer.dtypes)
結果:
禁用 convert_integer 后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A object
B Float64
C boolean
D string
dtype: object
示例4:禁用 convert_boolean
df_converted_no_boolean = df.convert_dtypes(convert_boolean=False)
print("禁用 convert_boolean 后的 DataFrame:")
print(df_converted_no_boolean)
print("\n數(shù)據(jù)類型:")
print(df_converted_no_boolean.dtypes)
結果:
禁用 convert_boolean 后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A Int64
B Float64
C object
D string
dtype: object
示例5:禁用 convert_floating
df_converted_no_floating = df.convert_dtypes(convert_floating=False)
print("禁用 convert_floating 后的 DataFrame:")
print(df_converted_no_floating)
print("\n數(shù)據(jù)類型:")
print(df_converted_no_floating.dtypes)
結果:
禁用 convert_floating 后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A Int64
B object
C boolean
D string
dtype: object
通過這些示例,可以看到 pandas.DataFrame.convert_dtypes 方法如何自動推斷和轉換 DataFrame 中的數(shù)據(jù)類型。這些方法在數(shù)據(jù)預處理和類型轉換時非常有用。
注意事項
convert_dtypes方法可以將 DataFrame 中的數(shù)據(jù)類型轉換為更合適的類型。- 可以通過設置不同的參數(shù)來控制哪些類型的轉換應該被啟用或禁用。
dtype_backend參數(shù)可以指定使用的數(shù)據(jù)類型后端,例如'numpy_nullable'或'pyarrow'。- 這些轉換可以幫助提高數(shù)據(jù)處理的效率和準確性。
示例代碼及驗證
為了驗證 pandas.DataFrame.convert_dtypes 方法的效果,可以運行上述示例代碼并查看輸出結果。
import pandas as pd
# 創(chuàng)建一個示例 DataFrame
data = {
'A': ['1', '2', '3'],
'B': ['1.1', '2.2', '3.3'],
'C': ['True', 'False', 'True'],
'D': ['x', 'y', 'z']
}
df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
print("\n數(shù)據(jù)類型:")
print(df.dtypes)
# 使用默認參數(shù)轉換數(shù)據(jù)類型
df_converted = df.convert_dtypes()
print("\n轉換后的 DataFrame:")
print(df_converted)
print("\n數(shù)據(jù)類型:")
print(df_converted.dtypes)
# 禁用 convert_string
df_converted_no_string = df.convert_dtypes(convert_string=False)
print("\n禁用 convert_string 后的 DataFrame:")
print(df_converted_no_string)
print("\n數(shù)據(jù)類型:")
print(df_converted_no_string.dtypes)
# 禁用 convert_integer
df_converted_no_integer = df.convert_dtypes(convert_integer=False)
print("\n禁用 convert_integer 后的 DataFrame:")
print(df_converted_no_integer)
print("\n數(shù)據(jù)類型:")
print(df_converted_no_integer.dtypes)
# 禁用 convert_boolean
df_converted_no_boolean = df.convert_dtypes(convert_boolean=False)
print("\n禁用 convert_boolean 后的 DataFrame:")
print(df_converted_no_boolean)
print("\n數(shù)據(jù)類型:")
print(df_converted_no_boolean.dtypes)
# 禁用 convert_floating
df_converted_no_floating = df.convert_dtypes(convert_floating=False)
print("\n禁用 convert_floating 后的 DataFrame:")
print(df_converted_no_floating)
print("\n數(shù)據(jù)類型:")
print(df_converted_no_floating.dtypes)
運行結果
運行上述代碼后,你會看到以下輸出:
原始 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A object
B object
C object
D object
dtype: object轉換后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A Int64
B Float64
C boolean
D string
dtype: object禁用 convert_string 后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A Int64
B Float64
C boolean
D object
dtype: object禁用 convert_integer 后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A object
B Float64
C boolean
D string
dtype: object禁用 convert_boolean 后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A Int64
B Float64
C object
D string
dtype: object禁用 convert_floating 后的 DataFrame:
A B C D
0 1 1.1 True x
1 2 2.2 False y
2 3 3.3 True z數(shù)據(jù)類型:
A Int64
B object
C boolean
D string
dtype: object
通過這些示例,可以看到 pandas.DataFrame.convert_dtypes 方法如何自動推斷和轉換 DataFrame 中的數(shù)據(jù)類型。這些方法在數(shù)據(jù)預處理和類型轉換時非常有用。
到此這篇關于pandas DataFrame convert_dtypes的具體使用的文章就介紹到這了,更多相關pandas DataFrame convert_dtypes內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python創(chuàng)建文件和追加文件內(nèi)容實例
這篇文章主要介紹了Python創(chuàng)建文件和追加文件內(nèi)容實例,本文同時給出了把標準輸出定向到文件實例,需要的朋友可以參考下2014-10-10
python基于watchdog庫實現(xiàn)文件系統(tǒng)監(jiān)控
Watchdog庫是Python中一個用于監(jiān)控文件系統(tǒng)變化的第三方庫,它能夠實時監(jiān)測文件或目錄的創(chuàng)建,修改,刪除等操作,下面我們來看看如何利用watchdog實現(xiàn)文件系統(tǒng)監(jiān)控吧2025-04-04
odoo?為可編輯列表視圖字段搜索添加查詢過濾條件的詳細過程
Odoo 是基于 Python 寫的一系列開源商業(yè)應用程序套裝,前身是 OpenERP,這篇文章主要介紹了odoo?為可編輯列表視圖字段搜索添加查詢過濾條件,需要的朋友可以參考下2023-02-02
python實現(xiàn)nao機器人身體軀干和腿部動作操作
這篇文章主要為大家詳細介紹了python實現(xiàn)nao機器人身體軀干和腿部動作操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
python采集天氣數(shù)據(jù)并做數(shù)據(jù)可視化
本文主要介紹了python采集天氣數(shù)據(jù)并做數(shù)據(jù)可視化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07
Python實戰(zhàn)之生成有關聯(lián)單選問卷
這篇文章主要為大家分享了一個Python實戰(zhàn)小案例——生成有關聯(lián)單選問卷,并且能根據(jù)問卷總分數(shù)生成對應判斷文案結果,感興趣的可以了解一下2023-04-04

