python - 如何使用字典对字符串列中的 values 进行复杂替换?

我有一本 pandas dataframe 形式的字典:

name     value 
phil      1
andy      4
allen     5

和一个看起来像这样的 table :

phil/andy    
allen

我想用第一个 table 中的 value 替换其中的 values:

1/4    
5

怎么做?

回答1

数据:

df = pd.DataFrame({'name': {0: 'phil', 1: 'andy', 2: 'allen'},
                   'value': {0: 1, 1: 4, 2: 5}})

df1 = pd.DataFrame({'names': {0: 'phil/andy', 1: 'allen'}})

代码

d = dict(zip(df['name'], df['value'].astype(str)))    
df1['replaced'] = df1['names'].str.replace("\\w+", lambda x:d.get(x[0]), regex=True)

df1
      names replaced
0  phil/andy      1/4
1      allen        5

回答2

这是一种解决您的问题的方法:

def foo(x):
    df['some_column'] = df['some_column'].str.replace(str(x['name']), str(x['value']))

dfNames.apply(foo, axis=1)

样本输入:

name  value
0   phil      1
1   andy      4
2  allen      5

  some_column
0   phil/andy
1       allen

样本输出:

some_column
0         1/4
1           5