Как сопоставить & ldquo; как можно больше, пока не будет сопоставлена ​​группа & rdquo ;?

Более быстрые результаты могут быть достигнуты с помощью numpy.where .

Например, при настройке unubtu -

In [76]: df.iloc[np.where(df.A.values=='foo')]
Out[76]: 
     A      B  C   D
0  foo    one  0   0
2  foo    two  2   4
4  foo    two  4   8
6  foo    one  6  12
7  foo  three  7  14

Сроки сравнения:

In [68]: %timeit df.iloc[np.where(df.A.values=='foo')]  # fastest
1000 loops, best of 3: 380 µs per loop

In [69]: %timeit df.loc[df['A'] == 'foo']
1000 loops, best of 3: 745 µs per loop

In [71]: %timeit df.loc[df['A'].isin(['foo'])]
1000 loops, best of 3: 562 µs per loop

In [72]: %timeit df[df.A=='foo']
1000 loops, best of 3: 796 µs per loop

In [74]: %timeit df.query('(A=="foo")')  # slowest
1000 loops, best of 3: 1.71 ms per loop

1
задан WoJ 18 January 2019 в 16:24
поделиться

1 ответ

Вы можете использовать это регулярное выражение:

hello\D+(\d+)

Где:

  • \D+ соответствует 1+ нецифрам после соответствия hello
  • [ 113] соответствует 1+ цифрам и захватывает его в группе № 1
0
ответ дан anubhava 18 January 2019 в 16:24
поделиться
Другие вопросы по тегам:

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