2017-10-22 2 views
1

Kontext erhalten:Pandas: string aus bestimmtem Spaltenkopf

: Ich bin in Pandas und ich brauche eine Funktion, die auf vorhandene Spalten neue Spalten basierend erstellt. Der Name der neuen Spalte hat den Namen aus der ursprünglichen Spalte plus neue Zeichen (Beispiel: Erstellen Sie eine Spalte "As NEW" aus der Spalte "As"). Kann ich auf die alte Spaltenüberschrift zugreifen, um den Namen der neuen Spalte zu erhalten?

Problem:

ich habe df['columnA'] und brauchen "columnA" String zu erhalten

+0

Bitte geben Sie an, was Sie bereits versucht haben. – scharette

+0

@scharette Ich habe keinen Code gefunden, aber die Frage bearbeitet, damit sie leichter zu verstehen ist – Jala015

Antwort

1

Wenn ich Sie richtig verstehe, dies auch sein mag, was Sie suchen.

Sie können str.contains() für die Spalten verwenden und dann string formatting verwenden, um den neuen Spaltennamen zu erstellen.

df = pd.DataFrame({'col1':['A', 'A', 'B','B'], 'As': ['B','B','C','C'], 'col2': ['C','C','A','A'], 'col3': [30,10,14,91]}) 
col = df.columns[df.columns.str.contains('As')] 
df['%s New' % col[0]] = 'foo' 
print (df) 
    As col1 col2 col3 As New 
0 B A C 30 foo 
1 B A C 10 foo 
2 C B A 14 foo 
3 C B A 91 foo 
0

Dies kann getan werden, durch die Spalten-Attribut.

cols = df.columns 
# Do whatever operation you want on the list of strings in cols 
df.columns = cols 
1

Unter der Annahme, dass Sie eine leere Datenrahmen df mit Spalten haben, könnten Sie die Spalten von df als Liste Zugriff mit:

>>> df.columns 
Index(['columnA', 'columnB'], dtype='object') 

.columns ermöglicht es Ihnen, die Spalten von df zu überschreiben, aber Sie muss nicht in einem anderen Index übergeben werden. Sie können es eine regelmäßige Liste übergeben, etwa so:

>>> df.columns = ['columna', 'columnb'] 
>>> df 
Empty DataFrame 
Columns: [columna, columnb] 
Index: [] 
Verwandte Themen