看板 Python 關於我們 聯絡資訊
不好意思我是python新手,最近學習pandas資料分析,遇到了問題,想跟大家請教一下, 就是dataframe中有一個欄位是"交易金額",我查一下他的type全部都是屬於str, 我想把這個欄位變成數值形式(df["交易金額"].astype(float),但是發現裡面有許多包 含長的不是數值的字串(例如:?,!,@,英文字母..等等),所以導致無法轉成數值,如何將 這些長的不是數值的字串列出來,麻煩大家了,感恩。 p.s 也有試過 isdigit()的方法也是不行 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.19.233.238 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1536037279.A.863.html ※ 編輯: tzjnrsnh (117.19.233.238), 09/04/2018 13:04:06
iphone2003: 試試''.join([s if s.isdigit() for s in string])?09/04 13:08
HenryLiKing: 用RE呢?09/04 13:14
HenryLiKing: 把不是0-9的都用 re.sub去掉09/04 13:15
renshin: 先用正規表示式抓出你要的,再轉成數值09/04 15:35
Angesi: 關鍵:正規表示式 結案09/04 18:02
tzjnrsnh: 感謝大家,已解決了09/04 22:20
※ 編輯: tzjnrsnh (117.19.233.238), 09/04/2018 22:21:03
woogee: df.交易金額[~df.交易金額.str.isnumeric()] 09/05 23:12
woogee: 也可以直接修改 09/05 23:14
woogee: df.交易金額[~df.交易金額.str.isnumeric()] = 0.0 09/05 23:14