Python:根据列名和条件替换数据框值

时间:2016-09-30 21:16:53

标签: python dataframe

假设我们有一个包含6列的数据框。对于其中3个列的子集,我们希望将3的实例更改为1.您能建议一种优雅的方法吗? 只需写一行如下:

df['A'][df.A == 3] = 1 

在我的实际数据中效率低,因为维度要大得多(比如改变200个变量中的50个)。

也许我们可以在这个例子上工作:

df = pd.DataFrame(np.random.randint(0,10,size=(100, 6)), columns=list('ABCDEF'))

我们想要在A,B和C列中更改3到1的值。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以遍历列的子集并使用loc进行分配。

subset cols = ['A', 'B', 'C']  # For example.
for col in subset_cols:
    df.loc[df[col] == 3, col] = 1