Gibt es eine Möglichkeit zu überprüfen, ob eine Spalte in einem Pandas DataFrame vorhanden ist?
Angenommen, ich habe den folgenden DataFrame:
>>> import pandas as pd
>>> from random import randint
>>> df = pd.DataFrame({'A': [randint(1, 9) for x in xrange(10)],
'B': [randint(1, 9)*10 for x in xrange(10)],
'C': [randint(1, 9)*100 for x in xrange(10)]})
>>> df
A B C
0 3 40 100
1 6 30 200
2 7 70 800
3 3 50 200
4 7 50 400
5 4 10 400
6 3 70 500
7 8 30 200
8 3 40 800
9 6 60 200
und ich möchte berechnen df['sum'] = df['A'] + df['C']
Aber zuerst möchte ich überprüfen, ob es df['A']
existiert, und wenn nicht, möchte ich df['sum'] = df['B'] + df['C']
stattdessen berechnen .
if not 'A' in df.columns:
um eine Operation auszuführen, wennA
sie indf
Um zu überprüfen, ob eine oder mehrere Spalten vorhanden sind, können Sie Folgendes verwenden
set.issubset
:Wie @brianpck in einem Kommentar hervorhebt,
set([])
kann alternativ mit geschweiften Klammern konstruiert werden,In dieser Frage finden Sie eine Erläuterung der Syntax für geschweifte Klammern.
Oder Sie können ein Listenverständnis verwenden, wie in:
quelle
{'A', 'B'}.issubset()
Um einen anderen Weg ohne if-Anweisungen vorzuschlagen, können Sie die
get()
Methode fürDataFrame
s verwenden. Für die Durchführung der Summe anhand der Frage:Die
DataFrame
get-Methode verhält sich ähnlich wie Python-Wörterbücher.quelle