【发布时间】:2022-01-12 18:52:52
【问题描述】:
使用 np.where 我能够获得 4 列 match1、match2、match3 和 match4。必须根据匹配 1、match2、match3 和 match4 的值更新最后一列 MATCHED。如果所有 4 列都是肯定的,那么我如果 4 个中有 3 个是“是”,则必须将 MATCHED 更新为“是”,那么“是”也将被更新。否则,否。
final_data = final_data.copy()
final_data['Match1'] = np.where(final_data['PROCESSOR_sub_column'] == final_data['PROCESSOR_Title'] , 'Yes', 'No')
final_data['Match2'] = np.where( final_data['RAM'] == final_data['RAM_Title'] , 'Yes', 'No')
final_data['Match3'] = np.where( final_data['Storage'] == final_data['STORAGE_Title'] , 'Yes', 'No')
final_data['Match4'] = np.where( final_data['Storage Type'] == final_data['STORAGE_TYPE_Title'] , 'Yes', 'No')
if (final_data['Match1']&final_data['Match2']&final_data['Match3']&final_data['Match4'] == 'Yes'):
final_data[Matched] = 'Yes'
将已生成的数据附加为屏幕截图:data looks like this
我也尝试使用 np.where() 直接获取 Matched 列,但我没有成功同时检查四个条件。我也不知道在使用 4 个条件时我应该在 np.where(,x,y) 中作为 X.y 传递。
抱歉,如果这个问题是重复的,我已尽力阅读所有以前有关相关主题的帖子。
【问题讨论】:
-
@TimRoberts 你能不能给点建议。我决定做 1) 连接 4 列 2) 用三次是和 4 次是定义 dict。 3)在连接列上映射字典,然后创建新的最终列。但我不知道我必须在 dict 中写什么
标签: python python-3.x pandas dataframe numpy