DataFrame.infer_objects(self) [source]
用于将具有对象数据类型的DataFrame的列转换为更具体的类型(dtypes)。
尝试对对象类型化的列进行软转换,而使非对象和不可转换的列保持不变。
推理规则与常规Series/DataFrame
构造过程中的规则相同。
0.21.0版中的新功能。
返回值: | converted : 返回一个新的 其中 |
例子
1)将 object
列推断为数值类型
import pandas as pd import numpy as np # 创建一个 DataFrame,其中包含 dtype=object 的列 df = pd.DataFrame({ "col1": [1, 2, 3], "col2": ["1.1", "2.2", "3.3"], "col3": ["a", "b", "c"] }) print("原始 DataFrame:") print(df.dtypes) # 使用 infer_objects df_inferred = df.infer_objects() print("\n推断后的 DataFrame:") print(df_inferred.dtypes)
2)推断时间戳类型
import pandas as pd # 创建一个 DataFrame,其中时间列是 object 类型 df = pd.DataFrame({ "date": ["2024-12-01", "2024-12-02", "2024-12-03"], "value": [100, 200, 300] }) print("原始 DataFrame:") print(df.dtypes) # 使用 infer_objects 后尝试推断类型 df_inferred = df.infer_objects() print("\n推断后的 DataFrame:") print(df_inferred.dtypes)
3)对混合类型列的推断
import pandas as pd # 创建一个包含混合数据类型的列 df = pd.DataFrame({ "mixed": [1, "2", 3.0, "4.5"] }) print("原始 DataFrame:") print(df.dtypes) # 使用 infer_objects df_inferred = df.infer_objects() print("\n推断后的 DataFrame:") print(df_inferred.dtypes)