我有一个这样的数据框:
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)
我在这里做错了吗?请指教。
答案 0 :(得分:1)
您需要对齐索引并映射数据。这是一种方法,如果您希望存在映射,这应该是有效的。
df1['feat'] = df1['Steam'].map(df2.set_index('cola')['colb']).fillna(df1['feat'])