我有一个这样的数据框。
0 1.144921
1 1.000000
2 1.119507
3 inf
4 0.000000
5 inf
6 0.000000
7 0.000000
8 1.000000
9 0.000000
10 0.000000
11 0.000000
12 1.793687
13 inf
我正试图摆脱“
inf
”字符串。基本上,我只想去掉所有字符串,只保留数据框中的数字。我尝试了下面的代码。
kepler = re.sub("\D", "", kepler)
kepler = re.sub('[^0-9]','0', kepler)
当我运行这两行代码时,我得到以下错误。
TypeError: expected string or bytes-like object
如果我有一个非常简单的字符串,它确实有效。所以,这是可行的。
s = '83jjdmi239450 19dkd'
s = re.sub("\D", "", s)
不幸的是,代码不能在我的数据帧上工作。有什么想法吗?谢谢。
最佳答案
样本数据帧上的numpy.isfinite
例程:
In [176]: df
Out[176]:
a
0 1.000000
1 1.119507
2 inf
3 0.000000
4 inf
5 0.000000
6 0.000000
7 1.000000
8 0.000000
9 0.000000
10 0.000000
11 1.793687
12 inf
In [177]: df = df[~np.isinf(df['a'])]
In [178]: df
Out[178]:
a
0 1.000000
1 1.119507
3 0.000000
5 0.000000
6 0.000000
7 1.000000
8 0.000000
9 0.000000
10 0.000000
11 1.793687
关于python - 似乎无法从字符串中剥离数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56907065/