【发布时间】:2016-06-05 04:59:40
【问题描述】:
给定这个数据框:
import pandas as pd
df = pd.DataFrame({'ID':['a','b','c','d','e','f','g','h','i','j','k'],
'value':['None',np.nan,'6D','7','10D','NONE','x','10D aaa','1 D','10 D aa',7]
})
df
ID value
0 a None
1 b NaN
2 c 6D
3 d 7
4 e 10D
5 f NONE
6 g x
7 h 10D aaa
8 i 1 D
9 j 10 D aa
10 k i7D
对于如上所示的任何混乱情况,我想提取存在的数字,否则返回 0。
想要的结果是:
ID value
0 a 0
1 b 0
2 c 6
3 d 7
4 e 10
5 f 0
6 g 0
7 h 10
8 i 1
9 j 10
10 k 7
提前致谢!
【问题讨论】:
-
我会这样做:
pd.to_numeric(df.value.str.replace(r'\D+',''), errors='coerce').fillna(0).astype(int)
标签: python string python-3.x pandas