1369 Stimmen

Erhalten Sie eine Liste von Pandas DataFrame-Spaltenüberschriften

Ich möchte eine Liste der Spaltenüberschriften aus einem Pandas DataFrame erhalten. Das DataFrame wird vom Benutzer eingegeben, daher werde ich nicht wissen, wie viele Spalten es geben wird oder wie sie genannt werden.

Zum Beispiel, wenn ich ein DataFrame wie dieses gegeben habe:

    y  gdp  cap
0   1    2    5
1   2    3    9
2   8    7    2
3   3    4    7
4   6    7    7
5   4    8    3
6   8    2    8
7   9    9   10
8   6    6    4
9  10   10    7

Ich würde eine Liste wie diese erhalten:

['y', 'gdp', 'cap']

41voto

Alexander Punkte 96032
>>> list(my_dataframe)
['y', 'gdp', 'cap']

Um die Spalten eines Dataframes im Debugger-Modus aufzulisten, verwenden Sie eine Listenverständnis:

>>> [c for c in my_dataframe]
['y', 'gdp', 'cap']

Übrigens können Sie eine sortierte Liste ganz einfach mit sorted bekommen:

>>> sorted(my_dataframe)
['cap', 'gdp', 'y']

27voto

BrenBarn Punkte 228691

Dies ist verfügbar als my_dataframe.columns.

21voto

Anton Protopopov Punkte 26936

Es ist interessant, aber df.columns.values.tolist() ist fast drei Mal schneller als df.columns.tolist(), obwohl ich dachte, dass sie dasselbe waren:

In [97]: %timeit df.columns.values.tolist()
100000 loops, best of 3: 2.97 µs pro Schleife

In [98]: %timeit df.columns.tolist()
10000 loops, best of 3: 9.67 µs pro Schleife

19voto

Sascha Gottfried Punkte 3245

Eine DataFrame folgt der den Konventionen die Schlüssel der Objekte zu durchlaufen.

my_dataframe.keys()

Erstellen Sie eine Liste von Schlüsseln/Spalten - Methode des Objekts to_list() und auf Python-Art:

my_dataframe.keys().to_list()
list(my_dataframe.keys())

Grundlegende Iteration auf einem DataFrame gibt Spaltenbezeichnungen zurück:

[column for column in my_dataframe]

Konvertieren Sie ein DataFrame nicht in eine Liste, nur um an die Spaltenbezeichnungen zu gelangen. Hören Sie nicht auf zu denken, während Sie nach praktischem Code suchen.

xlarge = pd.DataFrame(np.arange(100000000).reshape(10000,10000))
list(xlarge) # Rechenzeit und Speicherverbrauch hängen von der Größe des DataFrames ab - O(N)
list(xlarge.keys()) # Konstante Laufzeitoperation - O(1)

14voto

firelynx Punkte 28306

Im Notebook

Für die Datenexploration im IPython-Notebook ist mein bevorzugter Weg:

sorted(df)

Das wird eine alphabetisch geordnete Liste erzeugen, die einfach zu lesen ist.

In einem Code-Repository

In Code finde ich es expliziter, dies zu tun:

df.columns

Weil es anderen, die Ihren Code lesen, sagt, was Sie tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X