python – 在pandas中合并在R中合并

python – 在pandas中合并在R中合并,第1张

概述我担心我不太了解大熊猫的合并能力,虽然我现在更喜欢使用 python而不是R. 在R中,我总是能够非常容易地合并数据帧,如下所示: > merge(test,e2s, all.x=T) Gene Mutation Chromosome Entrez1 AGRN p.R451H chr1 375790 我担心我不太了解大熊猫的合并能力,虽然我现在更喜欢使用 python而不是R.

在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中合并所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1197046.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存