这似乎是一项固有的简单任务,但我发现从我的整个数据框中删除''并返回每列中的数值非常困难,包括没有的数字''。该dateframe包括数百列,看起来像这样在短:删除熊猫数据框中的特殊字符
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
有一个非常简单的方法,在大熊猫数据帧只删除了“*”?
在替换之后添加'df = df.astype(float)',你已经得到了它。我会跳过'inplace',只是做'df = df.replace('\ *','',regex = True).astype(float)'并且称它为好。 – piRSquared
@piRSquared使用'inplace'是不好的做法。 – shivsn
不,只是偏好。在这种情况下,当你在就地使用它时,它不会自动返回以允许链接。没有它,我能够链接astype(float) – piRSquared