pyPandas:弄乱了join / append / concat两个数据框

问题描述 投票:0回答:1

我有两个数据帧:一个具有12个列,另一个具有9个列,它们都有624行。我想将它们并排连接在一起,从而得到21 cols数据框,具有相同的624行数。我想保留行顺序。观察到两个数据框都按照“名称”列和“ 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     -
python join dataframe pandas concat
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
© www.soinside.com 2019 - 2024. All rights reserved.