为python中的可视化目的附加表(不同的行号)

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

我正在努力简单地将以下表格合并为一个:

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可用于填充那些空白点。这只是为了让我们一次更好地直观地比较几个表文件。什么都不需要。

我尝试使用以下方法的pandas:https://pandas.pydata.org/pandas-docs/stable/merging.html但这里的方法将组合具有相同索引的行 - 我不需要。我也尝试使用csv.reader(How two merge several .csv files horizontally with python?),但我的输出是空的没有错误消息...不确定是否因为行数不同。

任何意见,将不胜感激。谢谢。

python pandas csv
1个回答
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。正如你在问题中所说,NaNs是可以接受的,所以你可以省略它,并且只使用:

>>> 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
© www.soinside.com 2019 - 2024. All rights reserved.