Python 错误:无法分析位置6116处的字符串“*”-将对象类型转换为Int-类型

Python 错误:无法分析位置6116处的字符串“*”-将对象类型转换为Int-类型,python,pandas,dataframe,types,Python,Pandas,Dataframe,Types,这个问题已经在很多线程中被提出,并且对其他人有效,但对我无效。我正在尝试将对象数据类型转换为int以执行分组聚合。 以下是我尝试过的内容和我到目前为止遇到的错误,我使用的是Python3 根据此链接,我尝试: 两者的错误相同: ValueError:基数为10的int的文本无效:'*' 然后我 我有一个错误: ValueError:无法分析位置6116处的字符串* 这就是数据类型的外观 print (df.dtypes) my_var object dtype: object 我知道一些类似的

这个问题已经在很多线程中被提出,并且对其他人有效,但对我无效。我正在尝试将对象数据类型转换为int以执行分组聚合。 以下是我尝试过的内容和我到目前为止遇到的错误,我使用的是Python3 根据此链接,我尝试:

两者的错误相同:

ValueError:基数为10的int的文本无效:'*'

然后我

我有一个错误:

ValueError:无法分析位置6116处的字符串*

这就是数据类型的外观

print (df.dtypes)
my_var object
dtype: object

我知道一些类似的问题被否决了,但是,我没有成功地使用这些答案。这是版本错误吗?我发现很难理解这个错误。如有任何帮助或建议,将不胜感激

从DYZ和MaxU获得建议后,这是一个错误,因为我的数据帧中的行中有一个特殊字符*。错误消息很明显

根据建议,使用

df[df['my_var']=='*']


我找到了那个特殊角色的确切位置。然后使用正则表达式方法使用此方法去除特殊字符。

我使用0替换任何不是数字的值,但您可以使用任何其他对您有意义的值,例如,-999999显然不是建议的做法,只是一个示例

pd.to_numeric(df.my_var, errors='coerce').fillna(0).astype(int)

实际上,在数据帧的某个位置,6116处有一个字符串*试图将其转换为整数。不要那样做。正是因为*不是整数。不确定。检查df[df['my_var']=='*'].df.loc[pd.to_numericdf['my_var'],errors='concurve'.isnull]-应显示无法将my_var转换为数值的所有行…只要您决定如何处理无法转换为整数值的值,您的问题就可以很容易回答。。。
df[df['my_var']=='*']
df.loc[pd.to_numeric(df['my_var'], errors='coerce').isnull()]
pd.to_numeric(df.my_var, errors='coerce').fillna(0).astype(int)