df['view'] = np.where(df['view']==0, 'No view', df['view'])
df['view'] = np.where(df['view']==1, 'Mediocore', df['view'])
df['view'] = np.where(df['view']==2, 'Average', df['view'])
df['view'] = np.where(df['view']==3, 'Good', df['view'])
df['view'] = np.where(df['view']==4, 'Very good', df['view'])
我有一个房价数据集,其中“ View ”列按 1-4 的等级对 View 进行评分。我想使用此操作将它们更改为字符串,但是这段代码仅适用于第一行。
df['view'].value_counts()
-No view 4140
2 205
3 116
4 70
1 69
Name: view, dtype: int64
我如何让 np.where() 也为它们的其余部分工作?
最佳答案
Numpy 会在第一次调用时将数组转换为字符串,这意味着列中不再有 1,而是“1”。
这段代码可以工作:
df['view'] = np.where(df['view']==0, 'No view', df['view'])
df['view'] = np.where(df['view']=='1', 'Mediocore', df['view'])
df['view'] = np.where(df['view']=='2', 'Average', df['view'])
df['view'] = np.where(df['view']=='3', 'Good', df['view'])
df['view'] = np.where(df['view']=='4', 'Very good', df['view'])
我知道您问过如何让 numpy 的“在哪里”工作,我认为上面的内容确实如此。但值得一提的是,pandas apply 在这里也可能工作得很好,按照布局与字典进行映射,另一个答案会更好。
关于python - np.where( ) 不改变所有的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70744100/