python - 使用 numpy.where 向数据框输入值
问题描述
我正在尝试根据条件将值输入数据框。我有电影属性列,例如“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) 列表理解条件赋值
这些在下面的代码中进行了注释。
film_data['AttributeOlumsuz'] = [
'1' if v=='olumsuz' else '0' #2 list comprehension conditional assignment here
for v in film_data['FilmAttributes1'] #1 iterate over original values here
]
推荐阅读
- r - 使用循环根据多列值提取特定日期范围内的数据
- python - Python:以布尔值作为返回值的列表推导
- swift - AVCaptureMetadataOutputObjectsDelegate 仅在 iPad 上崩溃
- c# - 使用 WPF C# 将 PDF 文件上传到主机
- azure - Azure DevOps 托管的 ubuntu 代理问题更新应用程序网关
- python - 将总计添加到 Pandas 数据透视表
- r - 在 R 中使用 apply 创建假人
- python - 在 Django 和 Windows 10 中使用 PostgreSQL 数据库时遇到问题
- html - 在特定的静态页面上修复我的标题图像
- angular - 在 Angular 2+ 中检测点击绑定