получить количество из описания в pyspark с помощью регулярных выражений - PullRequest
1 голос
/ 06 ноября 2019

У меня есть датафрейм, который фиксирует код и его описание, нам нужно извлечь количество из описания. Пожалуйста, кто-нибудь может помочь извлечь количество с помощью регулярных выражений, это как число, за которым следует G / KG / L / ML

df

code description
1    ABC CHILLIE POWDER 100G
2    DEF POWDER 200G
3    DIL PDWR POWDER 100G
4    RAIN HILL HERB SOU GREED 40G 2 1FRE
5    DEAR CHILLI 200G+COCO POWDER 330ML
6    DIL PDWR 10L POWDER

result_df

code description                                 qty
1    ABC CHILLIE POWDER 100G                     100G
2    DEF POWDER 200G                             200G
3    DIL PDWR POWDER 100G                        100G
4    RAIN HILL HERB SOU GREED 40G 2 1FRE         40G
5    DEAR CHILLI 200G+COCO POWDER 330ML          200G
6    DIL PDWR 10L POWDER                         10L

Iиспользую

df.withColumn("qty", F.regex_extract(F.col("description"), "\dG", 1)

1 Ответ

1 голос
/ 06 ноября 2019

Вы можете использовать

df.withColumn("qty", F.regex_extract(F.col("description"), r"(\d+\s?(?:K?G|M?L))\b", 1)

Шаблон (\d+\s?(?:K?G|M?L))\b соответствует

  • (\d+\s?(?:K?G|M?L)) - Группа захвата 1:
    • \d+ - 1+цифры,
    • \s? - 1 или 0 пробелов, затем
    • (?:K?G|M?L) - либо необязательный K и G, либо необязательный M, а затем L
  • \b - граница слова.

См. Демо regex .

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