将括号之间的值拉入新的列熊猫

时间:2018-07-05 10:09:11

标签: python pandas

这个问题的两半都有一些问题和解答,将这些问题汇总在一起。以下面的代码段为例,如何创建一个仅将方括号之间的值取值的新列?

<a href="#!user-edit/92">User Edit screen</a>

我感觉它正在沿这条线使用某些东西:

 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*

1 个答案:

答案 0 :(得分:2)

使用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
相关问题