2017-06-30 4 views
-2

So fügen Sie ein Wort in der Mitte der Spaltennamen hinzu. Wie Suffix, aber nicht am Ende: Beispiel:Umbenennen aller Spaltennamen

value_1 value_2 VALUE_3

gewünschte Ausgabe: value_session_1 value_session_2 value_session_3

+2

'df.columns = df.columns.str.replace ('_', '_SESSION _')'? – Zero

Antwort

1

Verwendung map mit format gibt es möglich add auch Zeichenfolge vor oder nach:

df.columns = df.columns.map(lambda x: '{0[0]}_session_{0[1]}'.format(x.split('_'))) 

Oder Lösung von comment of John Galt mit str.replace:

df.columns = df.columns.str.replace('_', '_session_') 

Samples:

df = pd.DataFrame(columns=['value_1','value_2','value_3']) 
print (df) 
Empty DataFrame 
Columns: [value_1, value_2, value_3] 
Index: [] 

df.columns = df.columns.map(lambda x: '{0[0]}_session_{0[1]}'.format(x.split('_'))) 
print (df) 
Empty DataFrame 
Columns: [value_session_1, value_session_2, value_session_3] 
Index: [] 

df.columns = df.columns.str.replace('_', '_session_') 
print (df) 
Columns: [value_session_1, value_session_2, value_session_3] 
Index: [] 

EDIT:

df = pd.DataFrame(columns=['va_lue_1','va_lue_2','va_lue_3']) 
print (df) 
Empty DataFrame 
Columns: [va_lue_1, va_lue_2, va_lue_3] 
Index: [] 

df.columns = df.columns.map(lambda x: '{0[0]}_session_{0[1]}'.format(x.rsplit('_', 1))) 
print (df) 
Empty DataFrame 
Columns: [va_lue_session_1, va_lue_session_2, va_lue_session_3] 
Index: [] 
+0

Danke, aber was, wenn ich mehr als ein '_' im Spaltennamen habe? Wie wähle ich den letzten aus? Eigentlich habe ich wo zwei '_' erschien, jetzt mehr als zwei, also wie wählen Sie secont '_' – jovicbg

+0

Längste Antwort vielleicht nicht die beste Antwort. – staticor

+0

Verwenden Sie 'rsplit', checl Letzte Änderung. – jezrael

2

replacing ist einfach genug und sollte funktionieren:

df.columns = df.columns.str.replace('_','_session') 

Hoffnung, die dazu beigetragen. Glückliche Kodierung.

EDIT: wie @jezrael erwähnt

Verwandte Themen