2016-07-14 9 views
1

行11 - 13をどのようにサブセット化しますか?このハッキングされたpandasデータフレームをどのようにサブセット化しますか?

は、私はいくつか一緒にハッキングデータとパンダのデータフレームを持っていると私は、行11、12をサブセット化最も困難な時間を過ごしていて、13は基本的に、私は「dunntest」で始まる行を分離し、TRUE を持ちたいですを5列目に挿入し、新しいデータフレームに入れます。

  Group   CL   CL1     CL2  CL3 
0   Min  100.1  100.8    100.9  103.1 
1 1stquartile  100.5  101.1    101.4  103.3 
2  Median  101.6  101.4    101.6  103.4 
3   Mean  101.6  101.7    101.8  103.4 
4 3rdquartile  102.5  102.2    102.1  103.6 
5   Max  103.3  102.9    103.0  103.8 
6   CL  CL1   CL2     CL3  CLDNA 
7  0.4165119 0.6244998 0.4415880   0.3500000 0.6489307 
8  dunntest  none  CL - CL1 0.469096846266772  FALSE 
9  dunntest  none  CL - CL2 0.378810361841698  FALSE 
10  dunntest  none CL1 - CL2 0.429085199653927  FALSE 
11  dunntest  none  CL - CL3 0.0173616506762375  TRUE 
12  dunntest  none CL1 - CL3 0.0382663620796246  TRUE 
13  dunntest  none CL2 - CL3 0.0436908956580823  TRUE 
14  dunntest  none CL - CLDNA 0.116215240987058  FALSE 

私はprint(df.loc[:, "Group"]) をすれば、私は全体のデータフレームの最初の列を取得します。

と私はprint(df.loc[:, "Group" == "dunntest"])

を行うとき、私はKeyError例外を取得:彼らは常に異なるものになるので、カラム名を使用してKeyError: 'the label [False] is not in the [columns]'

*編集が信頼できるものではありません。

+0

'df.loc [df.Group ==" dunntest "] ' – piRSquared

+0

@ piRSquaredこれは参考になりますが、5列目でTRUEの行を取得するにはどうすればよいですか? – Chris

+0

申し訳ありませんが、私は解決策を提供していませんでした。 'KeyError'だけを修正します。 @jezraelはあなたの世話をしてくれました。 – piRSquared

答えて

4

あなたはboolean indexingを試すことができます。

print (df[(df["Group"] == "dunntest") & (df["CL3"] == 'TRUE')]) 
     Group CL  CL1     CL2 CL3 
11 dunntest none CL - CL3 0.0173616506762375 TRUE 
12 dunntest none CL1 - CL3 0.0382663620796246 TRUE 
13 dunntest none CL2 - CL3 0.0436908956580823 TRUE 

5列の使用によってiloc0からPythonのカウント、そうdf.iloc[:,4])を選択する必要がある場合:

print (df[(df["Group"] == "dunntest") & (df.iloc[:,4] == 'TRUE')]) 
     Group CL  CL1     CL2 CL3 
11 dunntest none CL - CL3 0.0173616506762375 TRUE 
12 dunntest none CL1 - CL3 0.0382663620796246 TRUE 
13 dunntest none CL2 - CL3 0.0436908956580823 TRUE 
+0

df ["CL3"]は、列名が常に異なるため信頼できません – Chris

+0

申し訳ありませんが、私は5.columnの解決策を追加します。 – jezrael

+0

には 'df.iloc [:, 2] .str.contains( 'CL3')' – piRSquared

0

をまっすぐ進むのアプローチは次のようになります。

df = df[(df["Group"] == "dunntest") & (df.iloc[4] == 'TRUE')] 
関連する問題