it-swarm.com.de

Python Pandas: Wie ersetze ich Zeichen in einer Spalte eines Datenrahmens?

Ich habe eine Spalte in meinem Datenrahmen wie folgt:

range
(2,30)
(50,290)
(400,1000)
... 

und ich möchte das ',' Komma durch '-' Strich ersetzen. Ich verwende derzeit diese Methode, aber nichts wird geändert.

org_info_exc['range'].replace(',','-',inplace=True)

Kann jemand helfen?

56
UserYmY

Verwenden Sie die vektorisierte str -Methode replace :

In [30]:

df['range'] = df['range'].str.replace(',','-')
df
Out[30]:
      range
0    (2-30)
1  (50-290)

[~ # ~] edit [~ # ~]

Wenn wir uns also ansehen, was Sie versucht haben und warum es nicht funktioniert hat:

df['range'].replace(',','-',inplace=True)

aus dem docs sehen wir folgendes desc:

str oder regex: str: string, die genau zu_replace passen, werden durch value ersetzt

Da die str-Werte also nicht übereinstimmen, erfolgt kein Ersatz. Vergleichen Sie Folgendes:

In [43]:

df = pd.DataFrame({'range':['(2,30)',',']})
df['range'].replace(',','-', inplace=True)
df['range']
Out[43]:
0    (2,30)
1         -
Name: range, dtype: object

hier bekommen wir eine genaue Übereinstimmung in der zweiten Reihe und der Ersatz erfolgt.

117
EdChum

Für alle anderen, die von der Google-Suche hierher kommen, um zu erfahren, wie Sie eine Zeichenfolge für alle Spalten ersetzen können (z. B. wenn eine Spalte mehrere Spalten enthält, z. B. den Bereich der OPs) 'column): Pandas hat eine eingebaute replace -Methode für ein Datenrahmenobjekt.

df.replace(',', '-', regex=True)

Quelle: Docs

13
kevcisme

Ersetzen Sie alle Kommas durch einen Unterstrich in den Spaltennamen

data.columns= data.columns.str.replace(' ','_',regex=True)
0
Rameez Ahmad