首页 > 解决方案 > 在 python 中附加表(不同的行号)用于可视化目的

问题描述

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

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 (如何两个与 python 水平合并几个 .csv 文件?),但我的输出是空的,没有错误消息......不确定是不是因为行数不同。

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

标签: pythonpandascsv

解决方案


尽管它使这个数据帧很难用于以后的处理,但您可以使用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

推荐阅读