添加新的排名列

时间:2016-05-15 16:53:00

标签: python pandas dataframe

我有两个差异帧

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

如何实现新数据框?

1 个答案:

答案 0 :(得分:1)

您可以dictionary d['Rank'] concatmap一起使用read_csv

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

DataFrames使用docs创建csv。 {{3}}