pandas.DataFrame.convert_dtypes # 数据框。Convert_dtypes(infer_objects = True, convert_string = True, convert_integer = True, convert_boolean = True, convert_floating = True, dtype_backend = 'numpy_nullable')[来源]# 使用 dtypes 支持将列转换为最佳可能的 dtypes pd.NA。 参数: infer_objects bool, 默认 True对象数据类型是否应转换为最佳类型。 Convert_string bool, 默认 True对象数据类型是否应转换为StringDtype(). Convert_integer bool, 默认 True如果可能的话,是否可以转换为整数扩展类型。 Convert_boolean布尔值,默认 True对象数据类型是否应转换为BooleanDtypes(). Convert_floating bool,默认 True如果可能的话,是否可以转换为浮动扩展类型。如果convert_integer也为True,如果浮点数可以忠实地转换为整数,则将优先考虑整数数据类型。 dtype_backend {'numpy_nullable', 'pyarrow'}, 默认 'numpy_nullable'应用于结果的后端数据类型DataFrame (仍处于试验阶段)。行为如下: "numpy_nullable":返回 nullable-dtype-backed DataFrame (默认)。 "pyarrow":返回 pyarrow 支持的可为空的ArrowDtype DataFrame。 2.0版本中的新增内容。 返回: 系列或数据框具有新数据类型的输入对象的副本。 也可以看看 infer_objects推断对象的数据类型。 to_datetime将参数转换为日期时间。 to_timedelta将参数转换为 timedelta。 to_numeric将参数转换为数字类型。 笔记 默认情况下,convert_dtypes将尝试将 Series(或 DataFrame 中的每个 Series)转换为支持pd.NA.通过使用选项 convert_string、convert_integer和,可以分别关闭对、整数扩展类型或浮点扩展类型convert_boolean的 单独转换 。convert_floatingStringDtypeBooleanDtype 对于对象类型列,如果infer_objectsis True,则使用正常 Series/DataFrame 构造期间的推理规则。然后,如果可能,转换为StringDtype,BooleanDtype或适当的整数或浮点扩展类型,否则保留为object。 如果数据类型是整数,则转换为适当的整数扩展类型。 如果数据类型是数字,并且由所有整数组成,请转换为适当的整数扩展类型。否则,转换为适当的浮动扩展类型。 将来,随着添加支持的新数据类型pd.NA,此方法的结果将更改以支持这些新数据类型。 例子 >>> 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")), ... } ... ) 从具有默认数据类型的 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 以使用最佳的数据类型。 >>> 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[python] c boolean d string[python] 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