2016-09-19 205 views
1

我有一个数据集D,其中包含来自[A - Z]的列共26列。我做了一些测试,并认识了这是在一系列的有用列给我S.从熊猫系列中选择数值

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

S具有列和与之相关联的价值,所以我现在知道他们的重要性,并希望保留只有数据集中的那些列例如(B,C,D)我该怎么做?

回答

3

IIUC你可以使用:

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

或者,如果列名是Series作为值:

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

样品:

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 

或者index值:

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

伟大的答案 - 你的样本可以帮助我可视化矩阵操作! – ptim