![](/img/trans.png)
[英]How to append counter number to each repeated string value in pandas column?
[英]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.