我正在尝试根据一个条件向数据帧输入值。我有电影属性栏,如'AttributeHorror'或'AttributeRomance'等。栏中填充了NaN。如果条件满足,则必须用1替换。如果不满足,则为0
我尝试了以下代码,但没有返回正确的
film_data['AttributeOlumsuz']
=np.where(film_data['FilmAttributes1']=='Olumsuz', '1', '0')
film_data['AttributeSiddet'] = np.where(film_data['FilmAttributes1']=='Siddet', '1', '0')
film_data['AttributeAltyazi'] =
np.where(film_data['FilmAttributes1']=='Altyazili', '1', '0')
film_data['AttributeGerilim'] =
np.where(film_data['FilmAttributes1']=='Gerilim', '1', '0')
此代码填充的每个单元格都不正确。我哪里出错了
简单的列表理解应该有用
有两个部分:
1)迭代原始值
2)列表理解条件赋值
这些在下面的代码中有注释
如果
numpy.where()
不起作用假设您正在使用pandas.DataFrame读取数据,您可以尝试:
第一种可能的解决方案:
df.loc[df['AttributeOlumsuz'] == 'Olumsuz', 'Tagger_Column'] = '1'
第二种可能的解决方案:
也可以使用
.map()
方法对于
False
条目,map
的结果是NaN
,如果您不喜欢,可以使用fillna
,参数等于您想要的任何值:相关问题 更多 >
编程相关推荐