Ik heb dataframes met kolomnamen (afkomstig uit .csv-bestanden) die (
en )
bevatten en ik zou ze willen vervangen door _
.
Hoe kan ik dat voor alle kolommen doen?
Antwoord 1, autoriteit 100%
Gebruik str.replace
:
df.columns = df.columns.str.replace("[()]", "_")
Voorbeeld:
df = pd.DataFrame({'(A)':[1,2,3],
'(B)':[4,5,6],
'C)':[7,8,9]})
print (df)
(A) (B) C)
0 1 4 7
1 2 5 8
2 3 6 9
df.columns = df.columns.str.replace(r"[()]", "_")
print (df)
_A_ _B_ C_
0 1 4 7
1 2 5 8
2 3 6 9
Antwoord 2, autoriteit 2%
Oudere versies van panda’s werken niet met het bovenstaande geaccepteerde antwoord. Iets als dit is nodig:
df.columns = [c.replace("[()]", "_") for c in list(df.columns)]
Antwoord 3
De vierkante haken worden gebruikt om een reeks tekens af te bakenen die u wilt extraheren. bijvoorbeeld:
r"[Nn]ational"
zal beide gevallen extraheren waar we “Nationaal” en “nationaal” hebben, d.w.z. het extraheert N of n.