我有两个数据帧:一个有12个cols,另一个有9个,两个都有624行。我想并排加入它们,得到21个cols数据帧,行数相同,为624行。我想按原样保留行顺序。观察两个数据帧按“Name”列和“L1”列的降序排列。我已经尝试了几个通过axis = 1忽略索引加入它们的东西。我所拥有的只是一个行数加倍的数据帧和一堆NAN。我也尝试过concat并追加,但没有成功。 任何帮助表示赞赏。 最好的,
n Name Position ObsHET PredHET HWpval %Geno FamTrio MendErr MAF Alleles Rating
48 rs17818182 32945574 0.153 0.141 1.0000 98.9 29 0 0.076 G:T NaN
45 rs17818176 32944041 0.033 0.033 1.0000 100.0 30 0 0.017 G:T NaN
133 rs17818104 32879319 0.136 0.126 1.0000 98.9 29 0 0.068 T:C NaN
105 rs17818087 32863970 0.241 0.307 0.2037 96.7 29 1 0.190 T:C NaN
165 rs17818021 32794604 0.302 0.329 0.7637 85.6 20 0 0.208 A:C NaN
L1 L2 D LOD r2 CIlow CIhi Dist T-int
31331 rs17818182 rs640249 0.423 0.27 0.012 0.04 0.80 66596 -
31328 rs17818176 rs640249 1.000 0.21 0.014 0.05 0.97 65063 -
29083 rs17818104 rs640249 1.000 3.01 0.092 0.51 1.00 341 -
27571 rs17818087 rs640249 0.143 0.14 0.006 0.01 0.44 15008 -
14857 rs17818021 rs640249 0.311 0.68 0.033 0.06 0.57 84374 -
答案 0 :(得分:0)
另一种方法是合并'名称'和'L1':
In [36]: df
Out[36]:
a b c
0 k -0.787279 1.431643
1 m 1.278970 2.294351
2 n 0.793787 -2.337330
In [37]: df2
Out[37]:
x y z
2 k -2.419514 1.178166
3 m -0.827535 -0.113485
4 n 0.135814 -0.612922
In [38]: df.merge(df2, left_on='a', right_on='x')
Out[38]:
a b c x y z
0 k -0.787279 1.431643 k -2.419514 1.178166
1 m 1.278970 2.294351 m -0.827535 -0.113485
2 n 0.793787 -2.337330 n 0.135814 -0.612922
另一种方法是在调用merge之前先调用DataFrame.reset_index:
In [50]: df.reset_index().merge(df2.reset_index(), left_index=True, right_index=True)
Out[50]:
index_x a b c index_y x y z
0 0 k -0.787279 1.431643 2 k -2.419514 1.178166
1 1 m 1.278970 2.294351 3 m -0.827535 -0.113485
2 2 n 0.793787 -2.337330 4 n 0.135814 -0.612922