2015-12-17 66 views
2

我有一個索引值列表和一個DataFrame。我想查找索引出現在列表中的所有行。如果我做返回列表中具有索引的DataFrame的行

data.loc[sample]

那麼只要有從列表中我得到許多行返回,否則在樣本的元素,和KeyError異常一場比賽。但是大多數行都充滿了NaN,因爲它們實際上不在數據幀索引中。

這實現了我想要的,但似乎有點複雜,似乎是一個常見的足夠的任務。

data.join(pd.DataFrame(index=sample), how='inner')

哪些基本功能,可以做這個工作?

回答

3

您可以使用df.index.isin(sample)

np.random.seed(0) 
df = pd.DataFrame(np.random.randn(3,3)) 

>>> df 
      0   1   2 
0 1.764052 0.400157 0.978738 
1 2.240893 1.867558 -0.977278 
2 0.950088 -0.151357 -0.103219 

sample = [1, 2, 3] 
>>> df[df.index.isin(sample)] 
      0   1   2 
1 2.240893 1.867558 -0.977278 
2 0.950088 -0.151357 -0.103219 
相關問題