Как сделать точное совпадение строк при фильтрации из pandas dataframe

Не знаю почему, но почему-то версия "/ bin / bash" не работает для меня. Вместо этого более простая версия работала, следуя примеру здесь, в Oracle Docs.

String[] args = new String[] {"ping", "www.google.com"};
Process proc = new ProcessBuilder(args).start();

2
задан Atihska 7 March 2019 в 19:05
поделиться

3 ответа

Вы можете попробовать:

df[df.pids.replace('\D','',regex=True).eq('1718')]

  indx   pids
2    C  1718,

'\ D': любой символ, который не является цифрой от 0 до 9.

РЕДАКТИРОВАТЬ Принимая во внимание следующее:

  indx       pids
2    C      1718,
5    F  3220,1718
0
ответ дан anky_91 7 March 2019 в 19:05
поделиться

Существует метод isin, который сопоставляет и возвращает фрейм данных, содержащий True для сопоставленного и false для несоответствующего.

Рассмотрим следующий пример

>>> found = df.isin(["1718"])==True
>>> df[found].head(3)

. Здесь будут показаны первые 3 значения, соответствующие 1718

.
0
ответ дан Ijaz Ur Rahim 7 March 2019 в 19:05
поделиться

Используйте str.contains с отрицательным обзором сзади, чтобы убедиться, что нет других цифр до '1718'

Образец данных

import pandas as pd
d = {'indx': {0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E', 5: 'F', 6: 'G'},
     'pids': {0: '181718,', 1: '31718,', 2: '1718,', 3: '1235,3456', 4: '890654,', 5: '1231,1718', 6: '1231, 1718'}}
df = pd.DataFrame(d)

Код:

df.loc[df.pids.str.contains('(?<![0-9])1718')]
[117 ] Вывод:

  indx        pids
2    C       1718,
5    F   1231,1718
6    G  1231, 1718

0
ответ дан ALollz 7 March 2019 в 19:05
поделиться
Другие вопросы по тегам:

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