Python Pandas - удаление конечных чисел и оставшихся слов в строке

Codo был точно прав 5 октября, что & amp; current [i] является предполагаемым текстом (с символом валюты, непреднамеренно введенным, когда источник был помещен в HTML (см. оригинал): http: // downloads. securityfocus.com/vulnerabilities/exploits/59846-1.c

Изменение Codo делает этот код эксплойта без ошибок. Я сделал это и смог использовать эксплойт на Ubuntu 12.04 для перерастания в root привилегия.

-2
задан Ashish Acharya 13 July 2018 в 05:50
поделиться

3 ответа

Я не думаю, что панды - лучший способ выполнить эту задачу, вы можете использовать токенизацию ntlk, чтобы отделить вашу строку от каждого слова в ней, а затем итерации через токенизированные слова, сохранить эти слова в отдельном массиве до тех пор, пока не встретится номер , и в этом случае вы можете использовать оператор break и перейти к следующей строке

0
ответ дан Ach113 17 August 2018 в 13:41
поделиться

Попробуйте следующее:

df['MyCol'].replace('[\,\s]+\d+.+', '')
0
ответ дан Ashish Acharya 17 August 2018 в 13:41
поделиться
  • 1
    df ['MyCol']. str.replace ('[\, \ s] + \ d +. +', '') будет работать. благодаря! – newtoCS 13 July 2018 в 07:36

Это довольно грубо, но попробуйте

df['MyCol'].str.split('[ |,][0-9]+')

Недостатком является то, что вам придется извлечь индекс 0 из возвращаемого списка, чтобы перезаписать исходный столбец. В качестве альтернативы установите параметр Expand = True и оставьте все последовательные столбцы, которые были сгенерированы.

df['MyCol'].str.split('[ |,][0-9]+', expand=True)

Выход:

0           [ABC,  QUEEN]

1           [ABC,  QUEEN]

2    [ABC PTE LTD YES123]

3     [ABC PTE LTD YES, ]
0
ответ дан kerwei 17 August 2018 в 13:41
поделиться
  • 1
    Я считаю, что YES123 в третьей строке предназначен для сохранения, поскольку это часть строки – kerwei 13 July 2018 в 06:21
  • 2
    YES123 предназначен для того, чтобы быть частью строки .., а вывод 0 и 1 должен приводить к ABC без QUEEN. – newtoCS 13 July 2018 в 07:02
  • 3
    Да, вы можете просто отказаться от Index1, поскольку Index0 - это в основном то, что вам нужно. Тем не менее, я думаю, что ответ Ашиша должен работать, если вы используете df.str.replace вместо df.replace. – kerwei 13 July 2018 в 07:16
Другие вопросы по тегам:

Похожие вопросы: