Как убрать начальные пробелы в числах с плавающей точкой - PullRequest
2 голосов
/ 23 апреля 2019

снимок Спасибо всем за ответы. Это опыт, который работал twt_clean.text.str.extract ( '(((= \ d +) [0-9] * [0-9] + |.?. [0-9] +) / ([1-9] [0-9 ] +)))

Выход:

12/10        486
10/10        436
11/10        413
13/10        287
9/10         153
8/10          98
7/10          51
14/10         38
5/10          33
6/10          32
3/10          19
4/10          15
2/10           9
1/10           4
204/170        1
80/80          1
9/11           1
 11.26/10      1
88/80          1
50/50          1
4/20           1
7/11           1
144/120        1
44/40          1
420/10         1
0/10           1
45/50          1
84/70          1
1776/10        1
 13.5/10       1
165/150        1
99/90          1
60/50          1
121/110        1
 11.27/10      1
 9.75/10       1
Name: ratings, dtype: int64

Но теперь результат приведенного выше выражения извлекает начальные пробелы в нескольких строках, которые не являются целыми числами, а плавают. В рамках вышеупомянутого опыта, как устранить ведущие пробелы. Пожалуйста, помогите.

1 Ответ

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

Вы получаете этот дополнительный пробел из-за точки, за которой следует положительный прогноз .(?=\d+), который утверждает, что справа это 1+ цифр.

Обратите внимание, что точка соответствует любому символу, кроме новой строки, и вы должны экранировать ее, чтобы она соответствовала буквально \.

Если вы больше не используете группы захвата в своем коде или инструменте, вы можете опустить их и использовать вместо них группы без захвата (?:.

Вы можете обновить свое выражение до:

(?:[0-9]*\.[0-9]+|[0-9]+)/[1-9][0-9]+

Это будет соответствовать:

  • (?: Группа без захвата
    • [0-9]*\.[0-9]+ Совпадение 0+ раз цифра, точка и 1+ раз цифра
    • | или
    • [0-9]+ Соответствует 1+ раз цифре
  • ) Закрыть группу без захвата
  • / Матч прямой слеш
  • [1-9][0-9]+ Совпадение цифры 1-9, за которой следуют цифры 1+

Regex demo

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