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)