首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据字符串pandas dataframe列中的每个值追加一个特定的字符串?

如何根据字符串pandas dataframe列中的每个值追加一个特定的字符串?
EN

Stack Overflow用户
提问于 2021-01-14 17:50:04
回答 1查看 30关注 0票数 1

让我们以这些示例数据帧为例:

代码语言:javascript
复制
df = pd.DataFrame({'Id':['1','2','3','4','5'], 'Value':[9,8,7,6,5]})

  Id  Value
0  1      9
1  2      8
2  3      7
3  4      6
4  5      5

df_name = pd.DataFrame({'Id':['1','2','4'], 'Name':['Andrew','Jason','John']})

  Id    Name
0  1  Andrew
1  2   Jason
2  4    John

我想在df的Id列中添加人员的姓名(在df_name中可以获得),如果它存在,则将其放在括号中。我知道如何使用df的Id列上的for循环来做到这一点,但它对于大型数据帧的效率很低。你知道有什么更好的方法来解决这个问题吗?

预期输出:

代码语言:javascript
复制
           Id  Value
0  1 (Andrew)      9
1   2 (Jason)      8
2           3      7
3    4 (John)      6
4           5      5
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-14 17:52:27

对匹配值使用Series.map,在Series.fillna中添加()并将非匹配值替换为原始列

代码语言:javascript
复制
df['Id'] = ((df['Id'] + ' (' + df['Id'].map(df_name.set_index('Id')['Name']) + ')')
               .fillna(df['Id']))
print (df)
           Id  Value
0  1 (Andrew)      9
1   2 (Jason)      8
2           3      7
3    4 (John)      6
4           5      5
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65716708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档