2017-04-03 8 views
2

に列の値を照合することによってカラムを作成し、私は以下のデータフレームパイソン(パンダ) - データフレーム

a  b  c  d  e  F 
0.02 0.62 0.31 0.67 0.27 a 
0.30 0.07 0.23 0.42 0.00 a 
0.82 0.59 0.34 0.73 0.29 a 
0.90 0.80 0.13 0.14 0.07 d 
0.50 0.62 0.94 0.34 0.53 d 
0.59 0.84 0.95 0.42 0.54 d 
0.13 0.33 0.87 0.20 0.25 d 
0.47 0.37 0.84 0.69 0.28 e 

列Fを想定したデータフレームの列を表します。コラムFIの行ごとに は次のようになります。データフレームの残りの部分から該当する行と列を検索し、1列

結果に値を返すようにしたい:

a  b  c  d  e  f To_Be_Filled 
0.02 0.62 0.31 0.67 0.27 a 0.02 
0.30 0.07 0.23 0.42 0.00 a 0.30 
0.82 0.59 0.34 0.73 0.29 a 0.82 
0.90 0.80 0.13 0.14 0.07 d 0.14 
0.50 0.62 0.94 0.34 0.53 d 0.34 
0.59 0.84 0.95 0.42 0.54 d 0.42 
0.13 0.33 0.87 0.20 0.25 d 0.20 
0.47 0.37 0.84 0.69 0.28 e 0.28 

私は識別することができていますそれぞれのケースは以下のとおりですが、データフレーム全体でどのように行うかは不明です。事前に

test.loc[test.iloc[:,5]==a,test.columns==a] 

感謝します。

答えて

6

あなたはlookupを使用することができます。

df['To_Be_Filled'] = df.lookup(np.arange(len(df)), df['F']) 
df 
Out: 
     a  b  c  d  e F To_Be_Filled 
0 0.02 0.62 0.31 0.67 0.27 a   0.02 
1 0.30 0.07 0.23 0.42 0.00 a   0.30 
2 0.82 0.59 0.34 0.73 0.29 a   0.82 
3 0.90 0.80 0.13 0.14 0.07 d   0.14 
4 0.50 0.62 0.94 0.34 0.53 d   0.34 
5 0.59 0.84 0.95 0.42 0.54 d   0.42 
6 0.13 0.33 0.87 0.20 0.25 d   0.20 
7 0.47 0.37 0.84 0.69 0.28 e   0.28 

np.arange(len(df))df.indexに置き換えることができます。

+0

ありがとうございます!これはまさに私が探していたものです!非常に高く評価しました – pbou

+0

@pbouよろしくお願いします。 :) – ayhan

関連する問題