2017-08-03 10 views
2

私は列を含むデータフレームを持っています。 "名前"には他の列の名前があります。私はその "名前"列に含まれている列名に基づいて値を各行に持つ新しい列を追加したいと思います。パンダ - 列名として他の列の値を使用して列を選択します。

例:

入力データフレーム: pd.DataFrame.from_dict({"a": [1, 2, 3,4], "b": [-1,-2,-3,-4], "names":['a','b','a','b']})

 
    a | b | names | 
--- | --- | ---- | 
    1 | -1 | 'a' | 
    2 | -2 | 'b' | 
    3 | -3 | 'a' | 
    4 | -4 | 'b' | 

出力データフレーム:

 
    a | b | names | new_col | 
--- | --- | ---- | ------ | 
    1 | -1 | 'a' | 1 | 
    2 | -2 | 'b' | -2 | 
    3 | -3 | 'a' | 3 | 
    4 | -4 | 'b' | -4 | 

pd.DataFrame.from_dict({"a": [1, 2, 3,4], "b": [-1,-2,-3,-4], "names":['a','b','a','b'], "new_col":[1,-2,3,-4]})

答えて

3

あなたは使用することができますありがとうございlookup

df['new_col'] = df.lookup(df.index, df.names) 
df 
# a b names new_col 
#0 1 -1  a 1 
#1 2 -2  b -2 
#2 3 -3  a 3 
#3 4 -4  b -4 
+1

ありがとう!それはまさにそれです。 – ab3

関連する問題