Как извлечь конкретный контент с помощью панд - PullRequest
0 голосов
/ 13 марта 2019

Рассмотрим следующие данные

Non-removable Li-Po 2870 mAh battery
Non-removable Li-Po 5910 mAh battery (A3-A20-K1AY)
Non-removable Li-Po 1810 mAh battery (6.9 Wh)

Я хотел бы извлечь числовое значение батареи мАч, как показано ниже

2870
5910
1810

Я пытался использовать

def func(x):
  # Split array
  ar = x.split(' mAh')

но я не понимаю, что мне нужно вернуть

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

Учитывая, что значение всегда лежит между LiPo и mAh, используйте extract:

df = pd.DataFrame({'col': ['Non-removable Li-Po 2870 mAh battery',
                           'Non-removable Li-Po 5910 mAh battery (A3-A20-K1AY)',
                           'Non-removable Li-Po 1810 mAh battery (6.9 Wh)']})
df.col.str.extract('Li-Po (.*) mAh')

      0
0  2870
1  5910
2  1810
0 голосов
/ 13 марта 2019

Кажется, что это всегда первое число, поэтому вы можете использовать

^\D*(\d+)

Как в

df.column_in_question_here.str.extract('^\D*(\d+)')

См. демо на regex101.com для выражения.

...