2016-04-08 26 views
0

Ich benutze Pandas, um Spalten aus einem Dataframe, Olddf auszuwählen. Nehmen wir an, die Variablennamen sind "a", "b", "c", "starswith1", "startswith2", "startswith3", ..., "startswith10".Pandas Dataframe Spaltenauswahl

Mein Ansatz bestand darin, eine Liste aller Variablen mit einem gemeinsamen Startwert zu erstellen.

filter_col = [col for col in list(health) if col.startswith('startswith')] 

Ich möchte dann Spalten auswählen innerhalb dieser Liste sowie andere, mit Namen, also muss ich ihnen nicht geben alle aus. Allerdings funktioniert das nicht:

newdf = olddf['a','b',filter_col] 

Und das nicht entweder:

newdf = olddf[['a','b'],filter_col] 

Ich bin ein Neuling so ist dies wahrscheinlich ziemlich einfach ist. Ist das nicht der Fall, weil ich eine Liste falsch mische?

Danke.

Antwort

2

Verwenden

newdf = olddf[['a','b']+filter_col] 

seit Listen hinzufügen verkettet sie:

In [264]: ['a', 'b'] + ['startswith1'] 
Out[264]: ['a', 'b', 'startswith1'] 

Alternativ können Sie the filter method verwenden:

newdf = olddf.filter(regex=r'^(startswith|[ab])')