Python pandas:根据另一个数据帧中包含的值更新数据帧系列值

时间:2015-06-12 20:24:06

标签: python pandas dataframe

我正在使用pandas和python,我有一个数据帧data。我有另一个数据框missing_valsmissing_vals包含field列和key列。 field列包含与data列的名称相对应的元素,即data.columns ~= missing_vals['field']。但是,映射不是一对一的(missing_vals['field']中的某些条目在data.columns中不存在。我做了一个交集操作来处理它并得到一个输出数组{{1包含resultmissing_vals['field']中所有值的所有值。现在我想使用data.columns的每个元素索引到data,检查该列是否包含与result中的元素对应的值,并将其替换为missing_vals['key']。我尝试使用for循环,但我知道这不是理想的方法。有没有办法做到这一点vector / lambda操作或者可能还有其他数据帧函数?我是熊猫新手,所以我真的很感激一些帮助。

到目前为止,这是我的代码:

NaN

由于

1 个答案:

答案 0 :(得分:1)

你应该真的发布样本输入/输出 - 这些东西很难口头解释。无论如何,我认为第二个循环可以完全消除。你真的只需要这样做。

field = missing_vals['field'][i]
data[field].replace(missing_vals['key'][i], np.nan)

replace方法用替换值替换所有出现,如果没有,则什么都不做。没有必要自己遍历列以检查要替换的值是否存在。如果您发布有问题的数据框的代表性示例,我可能会帮助您更多。