Удалить знак доллара из всего кадра данных Python Pandas

Я хочу удалить знаки доллара из всего фрейма данных python pandas. Это похоже на этот пост:

Удалить весь символ

Тем не менее, я хочу удалить знак доллара, который не работает. Я считаю, что это потому, что регулярное выражение видит знак доллара как конец строки, но я не уверен, что с этим делать. Вот что я создал до сих пор:

dftest = pd.DataFrame({'A':[1,2,3],
                       'B':[4,5,6],
                       'C':['f;','$d:','sda%;sd$'],
                       'D':['s%','d;','d;p$'],
                       'E':[5,3,6],
                       'F':[7,4,3]})

Что дает вывод:

In [155]: dftest
Out[155]:
   A  B         C     D  E  F
0  1  4        f;    s%  5  7
1  2  5       $d:    d;  3  4
2  3  6  sda%;sd$  d;p$  6  3

Затем я пытаюсь удалить знаки доллара следующим образом:

colstocheck = dftest.columns

dftest[colstocheck] = dftest[colstocheck].replace({'$':''}, regex = True)

Это не удаляет знаки доллара, но этот код удаляет знаки процента:

dftest[colstocheck] = dftest[colstocheck].replace({'%':''}, regex = True)

Так что я не уверен, как заменить знаки доллара.


person d84_n1nj4    schedule 29.03.2017    source источник


Ответы (2)


Вам нужно сбежать $ с помощью \:

dftest[colstocheck] = dftest[colstocheck].replace({'\$':''}, regex = True)
print (dftest)
   A  B        C    D  E  F
0  1  4       f;   s%  5  7
1  2  5       d:   d;  3  4
2  3  6  sda%;sd  d;p  6  3
person jezrael    schedule 29.03.2017
comment
Ааа, я играл с этим, но не смог заставить его работать - я не знаком с регулярными выражениями. Спасибо! - person d84_n1nj4; 29.03.2017
comment
Примечание: вы также можете указать множество символов в dict: {'\$': '', ',': ''}, например, для замены знаков доллара и запятых. Очень удобно при экспорте мусора в Excel :) - person Hendy; 26.09.2017

Чтобы добавить к ответу Израэля. добавьте 'r' перед строкой обратной косой черты, чтобы избежать предупреждения о недопустимой escape-последовательности pep8.

dftest[colstocheck] = dftest[colstocheck].replace({r'\$':''}, regex = True)
person Sam_Kim    schedule 13.01.2021