Удаление точки перед цифрами с помощью регулярного выражения в пандах - PullRequest
0 голосов
/ 23 апреля 2019

Мне нужно удалить точку перед цифрами, используя регулярные выражения в пандах.

What I have: .9/10 .8/10

What I want: 9/10 8/10

Мне нужно использовать df.col.str.extract().

Также Остерегайтесь , потому что есть также числа с плавающей запятой 11.25 / 10, и в этих случаях я хочу сохранить точку.

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Я думаю, что это работает на небольшом приведенном вами примере (В следующий раз предоставьте больше данных)

import re
re.sub(r' $', '', re.sub(r'|^.', '', re.sub(r', .', ', ', '.9/10, .8/10 ')))
'9/10, 8/10'
0 голосов
/ 23 апреля 2019

с использованием образца df, поскольку вы его не предоставили (убедитесь, что вы предоставили образец набора данных и ожидаемый результат в будущем, чтобы другие могли помочь)

df = pd.DataFrame ({'Data' : '20.01/10.'},index=[0])
print(df)
    Data
0   20.01/10.
df['Data'] = df['Data'].str.replace('\.$','')
    print(df)
    Data
0   20.01/10

Объяснение

В регулярном выражении специальный символ $ "[соответствует] концу строки или непосредственно перед новой строкой в ​​конце строки"

при условии, что вам нужно только удалить. с конца вы можете использовать шаблон выше.

Если вам нужно удалить из нецифрового символа, используйте

"\.(?!\d)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...