2016-09-07 9 views
2

データフレームとdictがあります。これらは次のようになります。辞書キーを持つ別の列からpandasデータフレーム列を作成します。

import pandas as pd 
df1 = pd.DataFrame({'first':['john','oliver','sarah']}) 
df1_map = {'john': 'anderson', 'oliver': 'smith', 'sarah' : 'shively'} 
print (df1) 
print (df1_map) 

    first 
0 john 
1 oliver 
2 sarah 
{'oliver': 'smith', 'sarah': 'shively', 'john': 'anderson'} 

df1 ['first']の値は、dictのキー値を表します。

私は[「二」] DF1というデータフレームに2つ目の列を追加したいと思いますので、dictの関係は今、次のデータフレーム、

first last 
0 john anderson 
1 oliver  smith 
2 sarah shively 

を取得するために維持されて、私はちょうどを反復処理することができデータフレーム値、

df1['last'] = [ df1_map[i] for i in list(df1['first'])] 

パンダはDFの行を反復処理することなく、これを行うことができますベクトル化実装/機能をサポートしている場合、私は思っていたので、同様

答えて

6

あなただけを直接キーに辞書値をマッピングすることができます

df1['last'] = df1['first'].map(df1_map) 

結果は次のとおりです。

Out[6]: 
    first  last 
0 john anderson 
1 oliver  smith 
2 sarah shively 
関連する問題