簡體   English   中英

append如何根據字符串pandas dataframe列中的每個值得到一個特定的字符串?

[英]How to append a specific string according to each value in a string pandas dataframe column?

讓我們采用這些樣本數據幀:

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 循環來執行此操作,但它對於大型數據幀效率低下。 你知道更好的方法嗎?

預計 output:

           Id  Value
0  1 (Andrew)      9
1   2 (Jason)      8
2           3      7
3    4 (John)      6
4           5      5

使用Series.map作為匹配值,添加()並將非匹配值替換為Series.fillna中的原始列:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM