为什么我不能在Python中将一个对象转换为int,如何检查这些麻烦的数据?

为什么我不能在Python中将一个对象转换为int,如何检查这些麻烦的数据?,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试运行代码: df["columnname"].astype(int) 它不会将我的数据类型转换为int。相反,它仍然作为对象列出。列中有很多行,但我很快在Excel中进行了排序,它们都是数字。事实上是整数。为什么Python认为里面有字符串,而实际上没有。我也尝试过float,只是为了确保里面没有非int,它仍然认为它是字符串 假设Excel是错误的,我如何准确地检查哪些值不能转换为int,并且是导致问题的原因。您可能需要明确地告诉python更改数据类型,如下所

我正在尝试运行代码:

df["columnname"].astype(int)
它不会将我的数据类型转换为int。相反,它仍然作为对象列出。列中有很多行,但我很快在Excel中进行了排序,它们都是数字。事实上是整数。为什么Python认为里面有字符串,而实际上没有。我也尝试过float,只是为了确保里面没有非int,它仍然认为它是字符串


假设Excel是错误的,我如何准确地检查哪些值不能转换为int,并且是导致问题的原因。

您可能需要明确地告诉python更改数据类型,如下所示:

df["columnname"] = df["columnname"].astype(int)

也许这是一个愚蠢的观点,但是,你把它分配回你的df了吗?不,我认为你是对的。我在Jupyter中做一些事情,但这完全是有道理的,因为在它后面还有一行代码将另一列转换为int,并且它可以工作。我现在就试试。问题是,当我试图重新分配df=df.rename时,我停止了重新分配dfs,这导致了一个错误。。。我想我养成了一个坏习惯