вытянуть значение между круглыми скобками в новый столбец панд - PullRequest
0 голосов
/ 05 июля 2018

Есть несколько вопросов и ответов по обеим частям этого вопроса, в которых есть проблемы, объединяющие их. Возьмите приведенный ниже фрагмент кода. Как можно создать новый столбец, вытягивая только значение в скобках?

 Household Income
 'Over $200,000 ($250,000)
 $160,000-$199,000 ($180,000)
 NaN

У меня такое ощущение, что он использует что-то вроде этого:

s[s.find("(")+1:s.find(")")]

Я просто не уверен, как его применить к:

df['Income'] = df['Household Income'].*some magic*

EDIT:

Решение будет

Income
250000
180000
NaN

1 Ответ

0 голосов
/ 05 июля 2018

Использование str.extract:

df['Household Income'] = df['Household Income'].str.replace(',','').str.extract(r"\(\$(.*)\)")
print (df)
  Household Income
0           250000
1           180000
2              NaN

И последнее, если необходимо преобразовать в числовое значение:

df['Household Income'] = (df['Household Income'].str.replace(',','')
                                                .str.extract(r"\(\$(.*)\)")
                                                .astype(float)) 
print (df)
   Household Income
0          250000.0
1          180000.0
2               NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...