[問題] 從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