Изменение значений в датасете формул
У меня есть столбец с данными типа: ZnFe2O4, Fe2O3, Fe3O4@CeO2, Fe-CuO2. Однако, формулы с разделителями типа: /, @, -, мне нужно привести к виду от Fe-CuO2 к FeCuO2. Я написала такой блок:
for formula in df['Core']:
if formula.isalnum( ) == False:
line = re.split("-,@,/", formula) #разделила через регулярные выражения
comp1 =''
count = 0
while count <= len(line):
for i in line:
count += 1
comp1 += i
df['Core'] = comp1
Однако в итоге все значения в столбце стали пустыми:
df['Core'].values
array(['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',...
В чём моя ошибка?
Обновление 1. Мне нужно, чтобы все значения в столбце типа Au@CuFe2O3 стали AuCuFe2O3, поэтому я решила разделить значения, что имели разделители в списки, а потом соединить в строку, но присваивание значений для каждого значения в pandas через цикл идёт не правильно. Как правильно проверить все значения на разделители в столбце в pandas и изменить неподходящие, без разделителей (@, /, -)?
Ответы (1 шт):
Если я правильно понял задачу, то надо в колонке неких строк, удалить из этих строк некие ненужные знаки. Есть pandas метод .str.replace(), он этим занимается.
df.Core = df.Core.str.replace('[-@/]', '', regex=True)