作者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/m.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