我正在努力将以下表格简单地附加到其中:
chr pos gene
1 100 A
2 150 B
chr pos gene
1 100 A
2 150 F
4 800 D
我希望决赛桌看起来像这样:
chr pos gene chr pos gene
1 100 A 1 100 A
2 150 B 2 150 F
4 800 D
表的列数相同,但行数不同。如果需要,可以使用NaN或0填充这些空白点。这只是为了我们更好地一次直观地比较几个表文件。不需要花哨的东西。
我尝试从https://pandas.pydata.org/pandas-docs/stable/merging.html使用以下方法中的pandas,但是这里的方法将结合具有相同索引的行-我不需要。我也尝试只使用csv.reader(How two merge several .csv files horizontally with python?),但是我的输出为空,没有错误消息...不确定是否是因为行数不同。
任何建议将不胜感激。谢谢。
答案 0 :(得分:1)
尽管这使此数据帧很难用于以后的处理,但是您可以使用pd.concat
进行此操作。如果您的数据帧分别称为df1
和df2
:
>>> pd.concat((df1,df2), axis=1).replace(np.nan, '')
chr pos gene chr pos gene
0 1 100 A 1 100 A
1 2 150 B 2 150 F
2 4 800 D
replace
调用只是为了获取空白字符串,而不是NaN
。正如您在问题中说的那样,NaN
是可以接受的,因此您可以忽略它,而只需使用:
>>> pd.concat((df1,df2), axis=1)
chr pos gene chr pos gene
0 1.0 100.0 A 1 100 A
1 2.0 150.0 B 2 150 F
2 NaN NaN NaN 4 800 D