2017-11-21 10 views
0

は、次のように私のDATAFRAME「候補者のルックスを想定:DataFrameからいくつかの行を取得して別のDataFrameを構築するにはどうすればよいですか?

        HnL close r_value sector_code 
Equity(36742 [TREE])    1.0 279.25 0.974858  103.0 
Equity(16820 [TTWO])    1.0 118.89 0.973719  311.0 
Equity(45521 [RNG])    1.0 47.20 0.972306  311.0 
Equity(49242 [PYPL])    1.0 77.70 0.985572  103.0 
Equity(25339 [ISRG])    1.0 393.76 0.985117  206.0 
Equity(8613 [CHDN])    1.0 217.30 0.989951  102.0 

最も左の列がインデックスです。

私が欲しいのは、別のDataFrameを構築するためにいくつかの行を取り出します。私は、行を取得するには、次の使用:

for index, row in candidates.iterrows(): 
    ... do some calculation here, 
    ... if fulfills my criteria, add this row to build 
    ... the new DataFrame with the same index 

は1、3と6行は私の基準を満たす想定し、新しいデータフレームをrebuldした後、それは次のように次のようになります。

        HnL close r_value sector_code 
Equity(36742 [TREE])    1.0 279.25 0.974858  103.0 
Equity(45521 [RNG])    1.0 47.20 0.972306  311.0 
Equity(8613 [CHDN])    1.0 217.30 0.989951  102.0 

答えて

0

リストを使用して、新しいデータフレームに追加するすべての行のインデックスを格納し、.locを使用してそれらの行をサブセット化することができます。

keep_rows = list() 
for index, row in candidates.iterrows(): 
    # define a condition that is either True or False based on row values 
    # for example, "condition = row['close'] > 200" 
    if condition: 
     keep_rows.append(index) 
new_df = candidates.loc[keep_rows,:] 
+0

素晴らしい、多くのありがとう! – thomas2013ch

関連する問題