我用熊猫从云中读取了我的csv文件,我使用了replace()并希望0成为丢失的值,但它似乎不起作用。
我使用Google的colab
我尝试了两种方法:
brew cask reinstall iterm2
但是数据与我第一次读取时相同,0没有变化
这是我读取文件的功能,我使用块方法
user_data = user_data.replace(0,np.nan) # first
user_data.replace(0,np.nan,inplace = True) # second
user_data.head() # I use this to view the data.
注意:我的代码没有报告错误,而是输出结果,但这不是我想要的
答案 0 :(得分:1)
您的0
可能只是字符串,请尝试使用:
user_data = user_data.replace('0', np.nan)
答案 1 :(得分:0)
在这种情况下,Python会很烦人。
如前所述,这可能是因为0是字符串而不是整数。 可以满足
user_data.replace("0",np.nan,inplace = True)
但是,我想指出的是,在您知道应该在pandas数据框中的列中包含哪种类型的数据的情况下,无论何时,您都应将其明确设置为该类型。在这种情况下,将引发错误,您将确切知道问题出在哪里。
在您的情况下,列为:
names2=['user_id','age','gender','area','status']
我们假设
您可以通过以下方式告诉pandas应该将哪一列指定为哪种数据类型:
user_data = userdata.astype({"user": str, "age": integer, "gender": str, "area": str, "status": str})
还有许多其他方法可以执行此操作,如以下answer中所述。选择适合您或您需要的。