2017-07-11 4 views
-2

"Hybridization REF"という行があるデータフレームがあります。リストにあるアイテムの1つと同じラベルのアイテムのデータしか取得できないようにフィルタを適用したいと思います。リストによるパンダのデータフレームのフィルタ

基本的に、私は次の操作を実行したいと思います:

dataframe[dataframe["Hybridization REF'].apply(lambda: x in list)] 

が、その構文が正しくありません。

答えて

0

df = pd.DataFrame(data=np.random.rand(5,5),columns=list('ABCDE'),index=list('abcde')) 

df 
      A   B   C   D   E 
a 0.460537 0.174788 0.167554 0.298469 0.630961 
b 0.728094 0.275326 0.405864 0.302588 0.624046 
c 0.953253 0.682038 0.802147 0.105888 0.089966 
d 0.122748 0.954955 0.766184 0.410876 0.527166 
e 0.227185 0.449025 0.703912 0.617826 0.037297 

collist = ['B','D','E'] 

rowlist = ['a','c'] 

リストの列を取得します。

df[collist] 

出力:

  B   D   E 
a 0.174788 0.298469 0.630961 
b 0.275326 0.302588 0.624046 
c 0.682038 0.105888 0.089966 
d 0.954955 0.410876 0.527166 
e 0.449025 0.617826 0.037297 

がリスト

内の行を取得します10
df.loc[rowlist] 

      A   B   C   D   E 
a 0.460537 0.174788 0.167554 0.298469 0.630961 
c 0.953253 0.682038 0.802147 0.105888 0.089966 
0

と仮定 dfはあなたのdataframelstは、ラベルの私達のlistです。

df.loc[ df.index.isin(lst), : ] 

インデックスがリスト項目の任意の値と一致するすべての行を表示します。私はこれがあなたの質問を解決するのを助けることを望みます

0

numpyのデータフレームはありますか?私はパンダのデータフレームだと推測しています。

あなたが.LOCまたは列のフィルタリングを使用することができます
df[df['Hybridization REF'].isin(list)] 
関連する問題