Pandas dataframe.infer_objects()函数
Pandas dataframe.infer_objects()函数的作用是为输入对象列推断更好的数据类型。此函数尝试对象-类型columns的软转换,保留非对象和不可转换的columns不变。推理规则与常规的Series/DataFrame构造相同。
语法:DataFrame.infer_objects()
返回:convert:与输入对象相同的类型
示例1
使用infer_objects()函数来推断更好的数据类型。
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":["sofia", 5, 8, 11, 100],
"B":[2, 8, 77, 4, 11],
"C":["amy", 11, 4, 6, 9]})
# Print the dataframe
df
输出 :
让我们看看dataframe中每一列的dtype(数据类型)。
# to print the basic info
df.info()
正如我们在输出中看到的,第一列和第三列是对象类型。而第二列是int64类型。现在将dataframe切片,并从中创建一个新的dataframe。
# slice from the 1st row till end
df_new = df[1:]
# Let's print the new data frame
df_new
# Now let's print the data type of the columns
df_new.info()
输出:
正如我们在输出中看到的,列“A”和“C”是对象类型,尽管它们包含整数值。那么,让我们试试infer_objects()函数。
# applying infer_objects() function.
df_new = df_new.infer_objects()
# Print the dtype after applying the function
df_new.info()
输出:
现在,如果我们看看每一列的dtype,我们可以看到列“A”和“C”现在是int64类型。
示例2
使用infer_objects()函数为对象推断出更好的数据类型。
# importing pandas as pd
import pandas as pd
# Creating the dataframe
df = pd.DataFrame({"A":["sofia", 5, 8, 11, 100],
"B":[2 + 2j, 8, 77, 4, 11],
"C":["amy", 11, 4, 6, 9]})
# Print the dataframe
df
让我们看看dataframe中每一列的dtype(数据类型)。
# to print the basic info
df.info()
正如我们在输出中看到的,第一列和第三列是对象类型。而第二列是complex128类型。现在将dataframe切片,并从中创建一个新的dataframe。
# slice from the 1st row till end
df_new = df[1:]
# Let's print the new data frame
df_new
# Now let's print the data type of the columns
df_new.info()
正如我们在输出中看到的,列“A”和“C”是对象类型,尽管它们包含整数值。B列的情况与此类似。那么,让我们试试infer_objects()函数。
# applying infer_objects() function.
df_new = df_new.infer_objects()
# Print the dtype after applying the function
df_new.info()
输出:
注意,列“B”的dtype没有改变。函数的作用是:在不改变非对象和不可转换columns的情况下进行软转换。