【发布时间】:2019-11-16 07:47:19
【问题描述】:
我有一个看起来像这样的数据框。
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)
很遗憾,该代码不适用于我的数据框。有什么想法吗?谢谢。
【问题讨论】:
-
你在这里使用熊猫吗?
-
试试
kepler = re.sub("\D", "", kepler) if type(kepler) == 'str' else kepler -
是的,我正在从 CSV 文件中读取数据。开普勒 = pd.read_csv(文件)
-
你在寻找 df[df[0].apply(lambda x: type(x) != str)]
标签: python python-3.x pandas dataframe