[问题] 从str中取出非数值(已解决)

楼主: tzjnrsnh (Sam Lee)   2018-09-04 13:01:17
不好意思我是python新手,最近学习pandas资料分析,遇到了问题,想跟大家请教一下,
就是dataframe中有一个字段是"交易金额",我查一下他的type全部都是属于str,
我想把这个字段变成数值形式(df["交易金额"].astype(float),但是发现里面有许多包
含长的不是数值的字串(例如:?,!,@,英文字母..等等),所以导致无法转成数值,如何将
这些长的不是数值的字串行出来,麻烦大家了,感恩。
p.s 也有试过 isdigit()的方法也是不行
作者: iphone2003 (307)   2018-09-04 13:08:00
试试''.join([s if s.isdigit() for s in string])?
作者: HenryLiKing (HenryLiKing)   2018-09-04 13:14:00
用RE呢?把不是0-9的都用 re.sub去掉
作者: renshin (阿信)   2018-09-04 15:35:00
先用正规表示式抓出你要的,再转成数值
作者: Angesi (小云豹)   2018-09-04 18:02:00
关键:正规表示式 结案
楼主: tzjnrsnh (Sam Lee)   2018-09-04 22:20:00
感谢大家,已解决了
作者: woogee (woogee)   2018-09-05 23:12:00
df.交易金额[~df.交易金额.str.isnumeric()]也可以直接修改df.交易金额[~df.交易金额.str.isnumeric()] = 0.0

Links booklink

Contact Us: admin [ a t ] ucptt.com