0

我有两个数据框:一个有 12 个列,另一个有 9 个,它们都有 624 行。我想将它们并排加入,从而产生具有相同 624 行数的 21 cols 数据框。我想保留行顺序。观察到两个数据框都按“名称”列和“L1”列的降序排列。我已经尝试了几件事来通过axis = 1忽略索引加入它们。我所拥有的只是一个行数翻倍和一堆 NAN 的数据框。我也尝试连接和追加,但没有成功。任何帮助表示赞赏。

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     -
4

1 回答 1

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

另一种是在调用合并之前先调用 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
于 2012-10-04T23:13:55.347 回答