2016-08-01 116 views
1

一個子集,我有以下DateFrame:選擇的熊貓數據幀

record_id month day year plot species sex wgt 
    33320  33321  1 12 2002  1  DM M 44 
    33321  33322  1 12 2002  1  DO M 58 
    ...   ...  ... ... ... ... ... ... ... 

我想顯示從去年列WGT用值等於27 我已經做了兩行:

df_slice = df[df.year == 27] 
df_slice = df_slice.ix[:,'year':] 

有什麼辦法可以將它減少到一行嗎?

回答

2

可以使用ix

print (df.ix[df.year == 27, 'year':]) 

樣品(加入值2001):

print (df) 
    record  id month day year plot species sex wgt 
0 33320 33321  1 12 2001  1  DM M 44 
1 33321 33322  1 12 2002  1  DO M 58 

print (df.ix[df.year == 2001, 'year':]) 
    year plot species sex wgt 
0 2001  1  DM M 44 
+0

它是非常有幫助的。如果我想展示年份:2001年和2002年,同時展示什麼?我試過df.ix [df.year == 2001&df.year == 2001,'year':],但它不是正確的解決方案 – Monica

+0

你非常接近,只添加括號'df.ix [(df .year == 2001)&(df.year == 2001),'year':],' – jezrael

+1

此外,如果我的回答很有幫助不要忘記[接受](http://meta.stackexchange.com/questions/5234/如何做 - 接受 - 答案 - 工作)。 – jezrael

2

有什麼辦法可以將它減少到一行嗎?

可以將2條線容易組合成1:

df_slice = df[df.year == 27].ix[:,'year':]