附加表格(不同的行号)以在python

时间:2018-08-14 22:03:55

标签: python pandas csv

我正在努力将以下表格简单地附加到其中:

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?),但是我的输出为空,没有错误消息...不确定是否是因为行数不同。

任何建议将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

尽管这使此数据帧很难用于以后的处理,但是您可以使用pd.concat进行此操作。如果您的数据帧分别称为df1df2

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