2016-08-25 121 views
2

我有一個熊貓數據框中的大數據集我想子集以便進一步操作。從具有索引的熊貓數據框的子集列

例如,我有一個DF,看起來像這樣:

Sample Group AMP   ADP   ATP 
1  A  0.3840396 0.55635504 0.5844648 
2  A  0.3971521 0.57851902 -0.24603208 
3  A  0.4578926 0.68118957 0.19129746 
4  B  0.400222 0.58370811 0.01782915 
5  B  0.4110945 0.60208593 -0.6285537 
6  B  0.3307011 -0.82615087 -0.25354715 
7  C  0.3485679 -0.79597002 -0.17294609 
8  C  0.3408411 -0.8090222 0.76138965 
9  C  0.3856457 -0.73333568 0.27364299 

可以說,我想拍一個新的數據幀df2df僅包含B組樣品,只有相應的值ATP 。我應該能夠單獨從索引爲此

我願做這樣的事情。(?):

df2 = df[(df['Group']=='B') & (df['ATP'])] 

我知道df['ATP']顯然不是這樣做的正確方法。打印df2產生這樣的:

Sample Group  AMP  ADP  ATP 
    4  B   0.400222 0.583708 0.017829 
    5  B   0.411094 0.602086 -0.628554 
    6  B   0.330701 -0.826151 -0.253547 

理想的情況下,df2應該是這樣的:

Sample Group ATP 
    4  B  0.017829 
    5  B  -0.628554 
    6  B  -0.253547 

有沒有辦法做到這一點,而不訴諸一些令人費解的循環或者乾脆手工刪除不需要的列和它們的值?

謝謝!

回答

2
df2 = df.loc[df['Group'] == 'B', ['Sample', 'Group', 'ATP']] 
+0

啊,這太棒了!我假設這段代碼只是在逗號後面傳遞所需列的索引。我知道會有一個簡單的解決方案。謝謝! – JeremyD