2016-05-15 4 views
-2

を追加私は2つの差分フレームを持つ新しいランキング列

df1.csv

Reg1 Reg2 
aaa eee 
bbb fff 
ccc ggg 
ddd hhh 

df2.csv

Reg,Rank 
aaa,1 
bbb,3 
ccc,4 
ddd,5 
eee,7 
fff,9 
ggg,10 
hhh,11 

newfram.csv

Reg1,Rank1,Reg2,Rank2 
aaa,1,eee,7 
bbb,3,fff,9 
ccc,4,ggg,10 
ddd,5,hhh,11 

どのように操作を行います新しいデータフレームを達成する?

+0

フォーマットを修正していただけますか? [ここでフォーマットガイドを参照してください] – miradulo

答えて

1

あなたはdictionaryd['Rank']によってmapconcatを使用することができます。

d = df2.set_index('Reg').to_dict() 
print d['Rank'] 
{'aaa': 1, 'bbb': 3, 'ggg': 10, 'eee': 7, 'fff': 9, 'hhh': 11, 'ccc': 4, 'ddd': 5} 


df = pd.concat([df1.Reg1, df1.Reg1.map(d['Rank']), df1.Reg2, df1.Reg2.map(d['Rank'])], 
       axis=1, 
       keys=['Reg1','Rank1','Reg2','Rank2']) 
print df 
    Reg1 Rank1 Reg2 Rank2 
0 aaa  1 eee  7 
1 bbb  3 fff  9 
2 ccc  4 ggg  10 
3 ddd  5 hhh  11 

csv使用read_csvからDataFramesを作成します。 docs

+0

ありがとうたくさんのjezrael(http://stackoverflow.com/editing-help) –

関連する問題