使用另一列上的键和字典中的值替换熊猫列值

时间:2018-08-07 07:24:19

标签: python pandas dictionary replace row

我搜索了stackoverflow,并浏览了一些与此相关的问题,即

Remap values in pandas column with a dict

关键区别在于这些问题回答了如何用相同列上的键和字典中的值替换列值。

例如:

import pandas as pd

df = pd.DataFrame({'key': ['bacd', 'fdvdf', 'scsdc'],
                   'value': [1, 2, 4]})

df['key'].replace({'bacd' : 200, 'sdfvs': 5000}, inplace=True)

    key   value
0   200     1
1   fdvdf   2
2   scsdc   4

我正在尝试使用字典中的来标识行,但是更新其他列(在这种情况下为值)而不是键列。 / p>

所需的输出:

    key     value
0   bacd    200
1   fdvdf   2
2   scsdc   4

谢谢。

1 个答案:

答案 0 :(得分:1)

map fillna

dct = {'bacd': 200, 'sdfvs': 5000}

df.assign(value=df.key.map(dct).fillna(df.value))

     key  value
0   bacd  200.0
1  fdvdf    2.0
2  scsdc    4.0