Questo sembra un compito intrinsecamente semplice, ma trovo molto difficile rimuovere lo '' dal mio intero frame di dati e restituire i valori numerici in ogni colonna, inclusi i numeri che non avevano ''. La dateframe include centinaia di più colonne e si presenta così in breve:Rimuovi caratteri speciali in pda dataframe
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*
non ho scritto a iterare su ogni colonna df ancora, ma per quanto riguarda la prima colonna va sono venuto su con questo
df['A1'].str.replace('*','').astype(float)
che produce
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
c'è un modo molto semplice per rimuovere il '*' proprio nella dataframe in panda?
Aggiungi 'df = df.astype (float)' dopo la sostituzione e ce l'hai. Salto 'inplace' e faccio' df = df.replace ('\ *', '', regex = True) .astype (float) 'e lo chiamo bene. – piRSquared
@piRSquared è una cattiva pratica che usa 'inplace'. – shivsn
No. Solo preferenza. In questo caso, quando si è utilizzato al posto, non si è ripristinato consentendo il concatenamento. Senza di esso, ero in grado di catena astype (float) – piRSquared