
在R中,我总是能够非常容易地合并数据帧,如下所示:
> merge(test,e2s,all.x=T) Gene Mutation Chromosome Entrez1 AGRN p.R451H chr1 3757902 C1orf170 p.V663A/V683A chr1 848083 HES4 p.R44S chr1 578014 ISG15 p.S83N chr1 96365 PLEKHN1 p.S476P/S511P/S563P/S76P chr1 84069
但是,我无法用合并(how =“left,right,inner,outer”)在pandas中重建这个.例如:
Outer yIElds a union,which makes sense:x = test.merge(e2s,how="outer")In [133]: x.shapeOut[133]: (46271,4)
但是内部会产生一个空的数据帧,即使Entrez_Gene_ID已成功合并:
In [143]: x = test.merge(e2s,how="inner")In [144]: xOut[144]:Empty DataFrameColumns: [Gene,Mutation,Chromosome,Entrez_Gene_ID]Index: [][0 rows x 4 columns]
交叉点应包含一行基因:HES4.我需要打开一些字符串匹配吗?:
E2S:
57794 SUGP157795 BRINP257796 DKFZP761C171157798 GATAD157799 RAB40C57801 HES457804 PolD457805 CCAR257817 HAMP
测试:
Gene Mutation Chromosome0 PLEKHN1 p.S476P/S511P/S563P/S76P chr11 C1orf170 p.V663A/V683A chr12 HES4 p.R44S chr13 ISG15 p.S83N chr14 AGRN p.R451H chr15 RNF223 p.P242H chr1
更新:
据我所知,列被标记为它们应该合并得很好,我只想通过Gene列合并并保留所有测试行:
In [148]: e2s.columnsOut[148]: Index([u'Gene',u'Entrez_Gene_ID'],dtype='object')In [149]: test.columnsOut[149]: Index([u'Gene',u'Mutation',u'Chromosome'],dtype='object')
这是通过显式重命名数据帧来完成的:
e2s.rename(columns={"Gene":u'Gene',"Entrez_Gene_ID":u'Entrez_Gene_ID'},inplace=True) dict:
{u'Chromosome': {0: u'chr1',1: u'chr1',2: u'chr1',3: u'chr1',4: u'chr1',5: u'chr1'},u'Gene': {0: u'PLEKHN1',1: u'C1orf170',2: u'HES4',3: u'ISG15',4: u'AGRN',5: u'RNF223'},u'Mutation': {0: u'p.S476P/S511P/S563P/S76P',1: u'p.V663A/V683A',2: u'p.R44S',3: u'p.S83N',4: u'p.R451H',5: u'p.P242H'}}{u'Entrez_Gene_ID': {14118: u'SUGP1',14119: u'BRINP2',14120: u'DKFZP761C1711',14121: u'GATAD1',14122: u'RAB40C',14123: u'HES4',14124: u'PolD4',14125: u'CCAR2',14126: u'HAMP'},u'Gene': {14118: 57794,14119: 57795,14120: 57796,14121: 57798,14122: 57799,14123: 57801,14124: 57804,14125: 57805,14126: 57817}}解决方法 也许您没有标记列(这是必需的,否则您如何知道要使用哪些列来匹配!) 如果它们都是带有标记列的框架,它可以正常工作:
In [11]: e2sOut[11]: number Gene0 57794 SUGP11 57795 BRINP22 57796 DKFZP761C17113 57798 GATAD14 57799 RAB40C5 57801 HES46 57804 PolD47 57805 CCAR28 57817 HAMPIn [12]: testOut[12]: Gene Mutation Chromosome0 PLEKHN1 p.S476P/S511P/S563P/S76P chr11 C1orf170 p.V663A/V683A chr12 HES4 p.R44S chr13 ISG15 p.S83N chr14 AGRN p.R451H chr15 RNF223 p.P242H chr1In [13]: e2s.merge(test)Out[13]: number Gene Mutation Chromosome0 57801 HES4 p.R44S chr1In [14]: test.merge(e2s)Out[14]: Gene Mutation Chromosome number0 HES4 p.R44S chr1 57801总结
以上是内存溢出为你收集整理的python – 在pandas中合并在R中合并全部内容,希望文章能够帮你解决python – 在pandas中合并在R中合并所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)