У меня проблема со спецсимволами в датафрейме. Например
ID license value1 value2 value3 ...
2 a "5,120.000" 15% 45 ...
1 b "3,246.440" 10% 65 ...
4 b "1,890.220" 50% 10 ...
5 c "2,005.240" 32% 12 ...
Проблема в том, что у меня так много столбцов, около 150, и это не нормально, если я иду столбец за столбцом и отдельно заменяю значения.
Итак, мне нужно заменить любые специальные символы и преобразовать числа (в данный момент - строковые столбцы) в плавающие.
Я пробовал что-то вроде этого:
def drop_percent(data):
for el in data.columns:
if data[el].astype(str).str.contains('%').any():
data[el] = data[el].str.strip("%").astype(float)
return data
def drop_commas(data):
for el in data.columns:
if data[el].astype(str).str.contains(',').any():
mcd[el] = mcd[el].str.replace(',','')
if data[el].astype(str).str.contains('"').any():
mcd[el] = mcd[el].str.replace('"', '')
mcd[el] = mcd[el].astype(float)
return data
У меня ошибка:
AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas