我有一列叫做“国家”的列,并且有很多“?”作为值,我试图将它们转换为NAN,但值没有改变。这是我的代码。
df['Country'].value_counts()
United-States 29170
Mexico 643
? 583
Philippines 198
Germany 137
df[df['Country']=='?'] = np.nan
df['Country'].isnull().sum()
0
我也尝试使用替换功能。
df['Country'].replace('?', np.nan)
我也尝试过
df = pd.read_csv('train.csv', na_values=['?'])
即使我尝试打印国家/地区值为“?”的所有行
它给出空的数据框。我不知道该怎么解决。有人可以帮我吗。
谢谢
答案 0 :(得分:1)
您的?
似乎有空格。您需要剥离这些内容,然后使用replace
应用inplace=True
命令,如下所示:
In [848]: df
Out[848]:
Country values
0 United-States 29170
1 Mexico 643
2 ? 583
3 Philippines 198
4 Germany 137
In [849]: df['Country'].str.strip().replace('?', np.nan, inplace=True)
In [850]: df
Out[850]:
Country values
0 United-States 29170
1 Mexico 643
2 NaN 583
3 Philippines 198
4 Germany 137
答案 1 :(得分:0)
df['Country'].replace(['?'], np.nan,inplace = True)
您忘了用True替换,因此它没有反映