Pandas:根据运行时的值更新值

时间:2018-04-04 10:44:34

标签: python pandas

我有一个这样的数据框:

DF1:

Steam   feat
1   some_value
2   some_value
3   some_value
4   some_value

我必须根据特定条件更新“feat”中的值。例如, 当蒸汽为“2”时,我必须将专长更新为“88” 输出应如下所示:

最终输出:

Steam      feat
    1   some_value
    2      88
    3   some_value
    4   some_value

我在这里遇到的问题是,我必须在从另一个名为df2的表中获取的运行时值中传递值“2”和“88”。

df2:

cola    colb

2   88

为实现这一目标,我尝试应用以下代码:

df1.loc[df1["Steam"] = df2.cola.values, 'feat'] = df2.colb.values

但是我收到“语法无效”错误

df2.cola.values的值将如下所示

array(['2'], dtype=object)

我在这里做错了吗?请指教。

1 个答案:

答案 0 :(得分:1)

您需要对齐索引并映射数据。这是一种方法,如果您希望存在映射,这应该是有效的。

df1['feat'] = df1['Steam'].map(df2.set_index('cola')['colb']).fillna(df1['feat'])