pandas DataFrame convert_dtypes的具体使用

 更新时间:2025年05月06日 11:17:07   作者:liuweidong0802  
pandas.DataFrame.convert_dtypes 是一个方法,用于将 DataFrame 中的数据类型转换为更合适的类型,本文就来介绍一下pandas DataFrame convert_dtypes的具体使用,感兴趣的可以了解一下

Pandas2.2 DataFrame

Conversion

方法描述
DataFrame.astype(dtype[, copy, errors])用于将 DataFrame 中的数据转换为指定的数据类型
DataFrame.convert_dtypes([infer_objects, …])用于将 DataFrame 中的数据类型转换为更合适的类型

pandas.DataFrame.convert_dtypes

pandas.DataFrame.convert_dtypes 是一个方法,用于将 DataFrame 中的数据类型转换为更合适的类型。这个方法可以帮助自动推断和转换数据类型,使得数据处理更加高效和准确。

方法签名

DataFrame.convert_dtypes(infer_objects=True, convert_string=True, convert_integer=True, convert_boolean=True, convert_floating=True, dtype_backend='numpy_nullable')

参数说明

  • 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',表示使用的数据类型后端。可以是 'numpy_nullable' 或 'pyarrow'

返回值

  • 返回一个新的 DataFrame,其中数据类型已转换。

示例

假设有一个 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数据类型:")
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

数据类型:
A    object
B    object
C    object
D    object
dtype: object

示例1:使用默认参数转换数据类型

df_converted = df.convert_dtypes()
print("转换后的 DataFrame:")
print(df_converted)
print("\n数据类型:")
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

数据类型:
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数据类型:")
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

数据类型:
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数据类型:")
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

数据类型:
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数据类型:")
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

数据类型:
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数据类型:")
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

数据类型:
A    Int64
B    object
C    boolean
D    string
dtype: object

通过这些示例,可以看到 pandas.DataFrame.convert_dtypes 方法如何自动推断和转换 DataFrame 中的数据类型。这些方法在数据预处理和类型转换时非常有用。

注意事项

  • convert_dtypes 方法可以将 DataFrame 中的数据类型转换为更合适的类型。
  • 可以通过设置不同的参数来控制哪些类型的转换应该被启用或禁用。
  • dtype_backend 参数可以指定使用的数据类型后端,例如 'numpy_nullable' 或 'pyarrow'
  • 这些转换可以帮助提高数据处理的效率和准确性。

示例代码及验证

为了验证 pandas.DataFrame.convert_dtypes 方法的效果,可以运行上述示例代码并查看输出结果。

import pandas as pd

# 创建一个示例 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数据类型:")
print(df.dtypes)

# 使用默认参数转换数据类型
df_converted = df.convert_dtypes()
print("\n转换后的 DataFrame:")
print(df_converted)
print("\n数据类型:")
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数据类型:")
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数据类型:")
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数据类型:")
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数据类型:")
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

数据类型:
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

数据类型:
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

数据类型:
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

数据类型:
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

数据类型:
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

数据类型:
A    Int64
B    object
C    boolean
D    string
dtype: object

通过这些示例,可以看到 pandas.DataFrame.convert_dtypes 方法如何自动推断和转换 DataFrame 中的数据类型。这些方法在数据预处理和类型转换时非常有用。

到此这篇关于pandas DataFrame convert_dtypes的具体使用的文章就介绍到这了,更多相关pandas DataFrame convert_dtypes内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python创建文件和追加文件内容实例

    Python创建文件和追加文件内容实例

    这篇文章主要介绍了Python创建文件和追加文件内容实例,本文同时给出了把标准输出定向到文件实例,需要的朋友可以参考下
    2014-10-10
  • python基于watchdog库实现文件系统监控

    python基于watchdog库实现文件系统监控

    Watchdog库是Python中一个用于监控文件系统变化的第三方库,它能够实时监测文件或目录的创建,修改,删除等操作,下面我们来看看如何利用watchdog实现文件系统监控吧
    2025-04-04
  • odoo 为可编辑列表视图字段搜索添加查询过滤条件的详细过程

    odoo 为可编辑列表视图字段搜索添加查询过滤条件的详细过程

    Odoo 是基于 Python 写的一系列开源商业应用程序套装,前身是 OpenERP,这篇文章主要介绍了odoo 为可编辑列表视图字段搜索添加查询过滤条件,需要的朋友可以参考下
    2023-02-02
  • python实现nao机器人身体躯干和腿部动作操作

    python实现nao机器人身体躯干和腿部动作操作

    这篇文章主要为大家详细介绍了python实现nao机器人身体躯干和腿部动作操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Pandas封装Excel工具类的方法步骤

    Pandas封装Excel工具类的方法步骤

    本文主要介绍了Pandas封装Excel工具类的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 基于Tensorflow高阶读写教程

    基于Tensorflow高阶读写教程

    今天小编就为大家分享一篇基于Tensorflow高阶读写教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 详解Python可视化神器Yellowbrick使用

    详解Python可视化神器Yellowbrick使用

    Yellowbrick是由一套被称为"Visualizers"组成的可视化诊断工具组成的套餐,其由Scikit-Learn API延伸而来,对模型选择过程其指导作用。这篇文章主要介绍了Python可视化神器Yellowbrick使用,需要的朋友可以参考下
    2019-11-11
  • python采集天气数据并做数据可视化

    python采集天气数据并做数据可视化

    本文主要介绍了python采集天气数据并做数据可视化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Python实战之生成有关联单选问卷

    Python实战之生成有关联单选问卷

    这篇文章主要为大家分享了一个Python实战小案例——生成有关联单选问卷,并且能根据问卷总分数生成对应判断文案结果,感兴趣的可以了解一下
    2023-04-04
  • python GUI多行输入文本Text的实现

    python GUI多行输入文本Text的实现

    这篇文章主要介绍了python GUI多行输入文本Text的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论