2017-07-08 6 views
2

Ich habe versucht, eine Funktion zu implementieren, die dies automatisch tut:Machen Sie eine Löschfunktion

del data['method_code'] 
del data['aqi'] 
del data['local_site_name'] 
del data['cbsa_name'] 

Ich habe diese Funktion:

def del_data_func(data,columns): 
    data[columns] = data[columns].apply(lambda x: del(x)) 
    return data 
del_list = data.columns[['method_code','aqi','local_site_name','cbsa_name']] 
del_data_func (data, del_list) 

Wie kann ich es in der richtigen Art und Weise implementieren und Fehler vermeiden wie dieser:

data[columns] = data[columns].apply(lambda x: del(x)) 
SyntaxError: invalid syntax 

Antwort

1

Ich weiß nicht, ob lambda Voraussetzung ist, sonst ein Weg ist, um loop: Wenn df ist:

col1 col2 col3 col4 col5 
0  1  1  1  1  1 
1  2  2  2  2  2 
2  3  3  3  3  3 
3  4  4  4  4  4 
4  5  5  5  5  5 

Dann kann Funktion wie folgt geschrieben werden:

def del_data_func(data,columns): 
    for column_name in columns: del data[column_name] 

Jetzt, Aufruf der Funktion:

del_list = ['col2', 'col4'] 
del_data_func (data, del_list) 
print(data) 

Ausgabe: nach col2 und col4 entfernt:

col1 col3 col5 
0  1  1  1 
1  2  2  2 
2  3  3  3 
3  4  4  4 
4  5  5  5 
+1

danke für Sie antworten! – dodo4545

3

Warum nicht versuchen Sie das?

data.drop(['method_code', 'aqi', 'local_site_name', 'cbsa_name'], axis=1, inplace=True)

Diese Liste könnte so lange jede Liste in der Tat sein, wie die Elemente in der Liste gelten Spaltennamen aus dem Datenrahmen.