2016-09-19 3 views
1

Ich habe einen Datensatz D mit Spalten von [A - Z] in insgesamt 26 Spalten. Ich habe einige Tests gemacht und bekam wissen, welche die nützlichen Spalten mir in einer Reihe sind S.Auswählen von Werten aus einer Serie in Pandas

D #Dataset with columns from A - Z 
S 
B 0.78 
C 1.04 
H 2.38 

S hat die Spalten und einen Wert mit ihm verbunden, also ich jetzt ihre Bedeutung kennen und behalten möchten nur die Spalten im Datensatz zB (B, C,) Wie kann ich das machen?

Antwort

3

IIUC können Sie:

cols = ['B','C','D'] 
df = df[cols] 

Oder wenn Spaltennamen sind in Series als Werte:

S = pd.Series(['B','C','D']) 
df = df[S] 

Probe:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,4,3]}) 

print (df) 
    A B C D E F 
0 1 4 7 1 5 7 
1 2 5 8 3 3 4 
2 3 6 9 5 6 3 

S = pd.Series(['B','C','D']) 
print (S) 
0 B 
1 C 
2 D 
dtype: object 

print (df[S]) 
    B C D 
0 4 7 1 
1 5 8 3 
2 6 9 5 

Oder index Werte:

S = pd.Series([1,2,3], index=['B','C','D']) 
print (S) 
B 1 
C 2 
D 3 
dtype: int64 

print (df[S.index]) 
    B C D 
0 4 7 1 
1 5 8 3 
2 6 9 5 
+1

großartige Antwort - Ihre Probe hilft mir Matrixoperationen zu visualisieren! – ptim

Verwandte Themen