2016-06-08 5 views
2

Mein Pandas Dataframe ist sehr groß und so möchte ich in der Lage sein, die TextLower (Frame) -Funktion zu ändern, so dass es in einem Befehl ausgeführt wird und ich nicht habe um über jede Zeile zu iterieren, um eine Sequenz von String-Manipulationen über jedes Element auszuführen.Anwenden von benutzerdefinierten Funktion auf Text auf einem Pandas-Datenframe statt iterieren einzelnes Element

# Function iterates over all the values of a pandas dataframe 
def textLower(frame): 
    for index, row in frame.iterrows(): 
     row['Text'] = row['Text'].lower() 
     # further modification on row['Text'] 
    return frame 


def tryLower(): 
    cities = ['Chicago', 'New York', 'Portland', 'San Francisco', 
    'Austin', 'Boston'] 
    dfCities = pd.DataFrame(cities, columns=['Text']) 
    frame = textLower(dfCities) 

    for index, row in frame.iterrows(): 
     print(row['Text']) 
######################### main() #########################  
def main(): 
    tryLower() 

Antwort

2

Versuchen Sie folgendes:

dfCities["Text"].str.lower() 

oder dies:

def textLower(x): 
    return x.lower() 

dfCities = dfCities["Text"].apply(textLower) 
dfCities 

# 0   chicago 
# 1   new york 
# 2   portland 
# 3 san francisco 
# 4   austin 
# 5   boston 
# Name: Text, dtype: object 
+0

Ja, das funktioniert ...! Danke für die Hilfe. – Bonson

Verwandte Themen