2017-10-27 3 views
0

Ich arbeite derzeit an einem Projekt für die Schule und ich versuche, mein Skript wo immer möglich wiederverwendbar zu machen.Anwenden einer Zeichenfolgenoperation auf eine Spalte in einem Python-Dataframe

Ich versuche, Sonderzeichen in allen String/Objekt-Spalten in meinem DataFrame zu entfernen/ersetzen. Derzeit tue ich dies, indem ich den Spaltennamen einer Funktion zur Verfügung stelle, die die Sonderzeichen entfernt und die Spalte an den DataFrame zurückgibt.

def removeSpecialChar(colName): 
    colName = colName.str.replace(r"[^A-Za-z ]+", ' ') 
    colName = colName.str.strip() 
    return colName 

dann den Aufruf der Funktion:

data.Area_unit_2013_label = removeSpecialChar(data.Area_unit_2013_label) 

das obige Beispiel mir erfordert die Spaltennamen angeben, um die Funktion zu übergeben die Sonderzeichen zu entfernen. Gibt es eine Möglichkeit, die Sonderzeichen aus allen String/Objekt-Spalten zu entfernen, ohne den Spaltennamen eingeben zu müssen?

Ich habe versucht:

import pandas as pd 
data = pd.read_csv("File_name.csv") 
data1 = pd.DataFrame(data.select_dtypes(include=['object'])) # here I 
identify the columns currently stored as strings/objects 
data1 = data1.replace("-", " ") # does not work 

Ich habe auch versucht, die folgenden:

data1 = pd.DataFrame(data.select_dtypes(include=['object'])) 
for columns in data1: 
    columns.replace("-", " ") 

Anregungen oder Feedback?

Antwort

0

Sie können versuchen, alle - in Spalten Name zu entfernen.

df.columns=[x.replace('-','') for x in list(df)] 

Wenn Sie die Spaltenwerte ersetzen möchten Zugabe regex=True

df.select_dtypes(include=['object']).replace({'-':''},regex=True) 
+0

Dank für die Antwort danken, aber leider, dass nur die Sonderzeichen in den Spaltennamen ersetzt und nicht alle gesamte Spalte. – notAprogrammer

+0

das hat hervorragend funktioniert. Vielen Dank für Ihre Hilfe, ich verbrachte Stunden damit, es herauszufinden. – notAprogrammer

Verwandte Themen