作者tzjnrsnh (Sam Lee)
看板Python
标题[问题] 从str中取出非数值
时间Tue Sep 4 13:01:17 2018
不好意思我是python新手,最近学习pandas资料分析,遇到了问题,想跟大家请教一下,
就是dataframe中有一个栏位是"交易金额",我查一下他的type全部都是属於str,
我想把这个栏位变成数值形式(df["交易金额"].astype(float),但是发现里面有许多包
含长的不是数值的字串(例如:?,!,@,英文字母..等等),所以导致无法转成数值,如何将
这些长的不是数值的字串列出来,麻烦大家了,感恩。
p.s 也有试过 isdigit()的方法也是不行
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 117.19.233.238
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1536037279.A.863.html
※ 编辑: tzjnrsnh (117.19.233.238), 09/04/2018 13:04:06
1F:推 iphone2003: 试试''.join([s if s.isdigit() for s in string])?09/04 13:08
2F:推 HenryLiKing: 用RE呢?09/04 13:14
3F:→ HenryLiKing: 把不是0-9的都用 re.sub去掉09/04 13:15
4F:推 renshin: 先用正规表示式抓出你要的,再转成数值09/04 15:35
5F:推 Angesi: 关键:正规表示式 结案09/04 18:02
6F:→ tzjnrsnh: 感谢大家,已解决了09/04 22:20
※ 编辑: tzjnrsnh (117.19.233.238), 09/04/2018 22:21:03
7F:推 woogee: df.交易金额[~df.交易金额.str.isnumeric()] 09/05 23:12
8F:推 woogee: 也可以直接修改 09/05 23:14
9F:→ woogee: df.交易金额[~df.交易金额.str.isnumeric()] = 0.0 09/05 23:14