我正在使用pandas和python,我有一个数据帧data
。我有另一个数据框missing_vals
。 missing_vals
包含field
列和key
列。 field
列包含与data
列的名称相对应的元素,即data.columns ~= missing_vals['field']
。但是,映射不是一对一的(missing_vals['field']
中的某些条目在data.columns
中不存在。我做了一个交集操作来处理它并得到一个输出数组{{1包含result
和missing_vals['field']
中所有值的所有值。现在我想使用data.columns
的每个元素索引到data
,检查该列是否包含与result
中的元素对应的值,并将其替换为missing_vals['key']
。我尝试使用for循环,但我知道这不是理想的方法。有没有办法做到这一点vector / lambda操作或者可能还有其他数据帧函数?我是熊猫新手,所以我真的很感激一些帮助。
到目前为止,这是我的代码:
NaN
由于
答案 0 :(得分:1)
你应该真的发布样本输入/输出 - 这些东西很难口头解释。无论如何,我认为第二个循环可以完全消除。你真的只需要这样做。
field = missing_vals['field'][i]
data[field].replace(missing_vals['key'][i], np.nan)
replace
方法用替换值替换所有出现,如果没有,则什么都不做。没有必要自己遍历列以检查要替换的值是否存在。如果您发布有问题的数据框的代表性示例,我可能会帮助您更多。