这似乎是一个本质上简单的任务,但我发现从整个数据框中删除''并返回每列中的数字值非常困难,包括没有''的数字。这个数据框包括数百个更多的列,简要地看起来像这样:
Time A1 A2
2.0002546296 1499 1592
2.0006712963 1252 1459
2.0902546296 1731 2223
2.0906828704 1691 1904
2.1742245370 2364 3121
2.1764699074 2096 1942
2.7654050926 *7639* *8196*
2.7658564815 *7088* *7542*
2.9048958333 *8736* *8459*
2.9053125000 *7778* *7704*
2.9807175926 *6612* *6593*
3.0585763889 *8520* *9122*
我尚未编写用于迭代df中每列的代码,但就第一列而言,我已经想出了以下内容
df['A1'].str.replace('*','').astype(float)
得到的产物是
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
10 NaN
11 NaN
12 NaN
13 NaN
14 NaN
15 NaN
16 NaN
17 NaN
18 NaN
19 7639.0
20 7088.0
21 8736.0
22 7778.0
23 6612.0
24 8520.0
在pandas的数据框中,是否有一种非常简单的方法只去掉“*”符号?
df = df.astype(float)
就可以了。我建议跳过inplace
,只需执行df = df.replace('\*', '', regex=True).astype(float)
即可。 - piRSquared