Итак, у вас есть ваш фрейм данных:
df = pd.DataFrame({'Text': ['100 - Hello World', '200 - Bye World', '300 - Good World']})
df
Text
0 100 - Hello World
1 200 - Bye World
2 300 - Good World
Вы можете извлечь две части столбца с помощью регулярного выражения:
df = df['Text'].str.extractall(r'([0-9]+) - (.*)')
0 1
match
0 0 100 Hello World
1 0 200 Bye World
2 0 300 Good World
Вы создаете фрейм данных со всеми вашими переводами:
df_translate = pd.DataFrame({"en": ["Hello World", "Bye World", "Good World"], "fr": ["Bonjour Monde", "Au revoir le Monde", "Bon Monde"]})
en fr
0 Hello World Bonjour Monde
1 Bye World Au revoir le Monde
2 Good World Bon Monde
Вы объединяете два кадра данных и создаете свой столбец обратно:
pd_res = pd.merge(df, df_translate, left_on=1, right_on='en', how='left')
pd_res['res'] = pd_res[0] + ' - ' + pd_res['fr']
0 1 en fr res
0 100 Hello World Hello World Bonjour Monde 100 - Bonjour Monde
1 200 Bye World Bye World Au revoir le Monde 200 - Au revoir le Monde
2 300 Good World Good World Bon Monde 300 - Bon Monde