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