Я пытаюсь найти в кадре данных определенные слова, перечисленные в значениях словаря, если они существуют, они будут заменены ключом значений.
units_dic= {'grams':['g','Grams'],
'kg' :['kilogram','kilograms']}
проблема в том, что в некоторых единицах измерения сокращения являются буквами, поэтому они также заменят все буквы. Я хочу выполнить замену, только если ей предшествует число, чтобы убедиться, что это единица измерения.
Dataframe
Id | test
---------
1 |'A small paperclip has a mass of about 111 g'
2 |'1 kilogram =1000 g'
3 |'g is the 7th letter in the ISO basic Latin alphabet'
Запасной контур
x = df.copy()
for k in units_dic:
for i in range(len(x['test'])):
for w in units_dic[k]:
x['test'][i] = str(x['test'][i]).replace(str(w), str(k))
Выход
Id | test
---------
1 |'A small paperclip has a mass of about 111 grams'
2 |'1 kg =1000 grams'
3 |'grams is the 7th letter in the ISO basic Latin alphabet'