马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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 中的数据类型。这些方法在数据预处置惩罚和类型转换时非常有用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|