我有10个两列的.csv文件。例如
文件1.csv
Bact1,[1821932:1822487](+)
Bact2,[555760:556294](+)
Bact3,[2901866:2902424](-)
Bact4,[1104980:1105544](+)
文件2.csv
^{pr2}$文件3.csv
Bact6,[4045708:4047781](+)
依此类推到file10.csv,Bact1代表一种细菌,所有的数字包括符号都代表一个基因的位置。每个文件代表一个不同的基因,并且有重复的,就像file2.csv一样
我想合并这些文件,这样我就有了这样的东西
Bact1 [1821932:1822487](+) [1973928:1975194](-) NaN
Bact2 [555760:556294](+) [972152:973499](+) NaN
Bact3 [2901866:2902424](-) [3001035:3002739](-) NaN
Bact4 [1104980:1105544](+) [3331158:3332481](+) NaN
Bact5 NaN [712517:713771](+) NaN
Bact5 NaN [1376120:1377386](-) NaN
Bact6 NaN NaN [4045708:4047781](+)
我曾尝试在python中使用pandas包,但似乎大多数函数都是为了合并两个数据帧,而不是两个以上,或者我遗漏了一些东西。在
我上周刚开始用python编程(我通常使用R),所以陷入可能或至少是这样的事情看起来很简单。在
现在我正在使用:
for x in range(1,10):
df[x]=pandas.read_csv("file%s.csv" % (x),header=None,index_col=[0])
df[x].columns=['gene%s' % (x)]
dfjoin={}
dfjoin=df[1].join([df[2],df[3],df[4],df[5],df[6],df[7],df[8],df[9],df[10]])
结果:
0 gene1 gene2 gene3
Starkeya-novella-DSM-506 NaN [728886:730173](+) [731445:732615](+)
Starkeya-novella-DSM-506 NaN [728886:730173](+) [9662:10994](+)
Starkeya-novella-DSM-506 NaN [728886:730173](+) [9662:10994](+)
Starkeya-novella-DSM-506 NaN [728886:730173](+) [9662:10994](+)
见gene2和gene3,它复制了重复的结果。在
我稍微改变了你的示例数据,代码如下:
输出:
^{pr2}$假设您已将这些作为数据帧读入,如下所示:
然后您可以简单地^{} 它们:
^{pr2}$相关问题 更多 >
编程相关推荐