Python 如何通过添加其他列中项目的值,将具有相同值的列附加到文件中?

Python 如何通过添加其他列中项目的值,将具有相同值的列附加到文件中?,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我使用下面的脚本生成一个输出 #import necessary packages import pandas as pd #read the files df=pd.read_table("abc.txt", sep="\t") df2=pd.read_table("xyz.txt", sep="\t") #make groups gt30 = df.groupby(['#START','#END'])['#DEPTH'].apply(lambda x: x[x>=30].count

我使用下面的脚本生成一个输出

#import necessary packages
import pandas as pd
#read the files 
df=pd.read_table("abc.txt", sep="\t")
df2=pd.read_table("xyz.txt", sep="\t")

#make groups
gt30 = df.groupby(['#START','#END'])['#DEPTH'].apply(lambda x: x[x>=30].count()).rename('gt30')
gt40 = df.groupby(['#START','#END'])['#DEPTH'].apply(lambda x: x[x>=40].count()).rename('gt40')
gt50 = df.groupby(['#START','#END'])['#DEPTH'].apply(lambda x: x[x>=50].count()).rename('gt50')

#append groups
df2.merge(gt30, on='#START').merge(gt40, on='#START').merge(gt50, on='#START')
输出结果如下所示

CHR     #START      #END      #GENE   #MEAN     #gt30 #gt40 #gt50
chr1    11106936    11107192    MTOR    24.4648438  74  0   0
chr1    11107388    11107655    MTOR    17.1910114  27  0   0
chr1    11108018    11108369    MTOR    29.2108269  140 82  0
chr1    11109097    11109459    MTOR    12.6104975  0   0   0
chr1    15872788    15873080    SPEN    36.9075356  162 109 100
chr1    15873083    15873203    SPEN    33.25   64  42  24
chr1    15874162    15874419    SPEN    26.0272369  73  0   0
chr1    15876191    15876757    SPEN    41.5477028  429 378 229
chr2    99551491    99551743    AFF3    41.4325409  191 149 75
chr2    99554298    99554464    AFF3    214.3433685 166 166 166
chr2    99554649    99554839    AFF3    59.5315781  155 143 134
chr2    99558760    99559106    AFF3    44.6445084  265 199 162
chr2    99560255    99560503    AFF3    25.0040321  116 48  0
chr2    99565418    99565659    AFF3    33.5684662  137 94  38

现在我想将所有“#GENE”附加在一起,并创建一个新文件,如下所示

#CHR    #START      #END        #GENE   #MEAN     #gt30  #gt40 #gt50 
chr1    11106936    11109459    MTOR    83.4771796  241    82   0    
chr1    15872788    15876757    SPEN    36.9075356  728   529   353  
这是通过添加“#MEAN、#gt30、#gt40、#gt50”的列来实现的 #开始没有变化,#结束#结束列中更改了#基因的最后一个值。

你可以按他的方式来做

不清楚您在
#sum_sub
列中想要什么,您能稍微解释一下吗

(df.groupby('#GENE', sort=False).agg(MEAN=('#MEAN', 'sum'),
                         gt30=('#gt30', 'sum'),
                         gt40=('#gt40', 'sum'),
                         gt50=('#gt50', 'sum'),
                         START=('#START','first'),
                         END=('#END','last')).reset_index())
输出

    #GENE   MEAN        gt30    gt40    gt50    START       END
0   MTOR    83.477180   241     82      0       11106936    11109459
1   SPEN    137.732475  728     529     353     15872788    15876757
2   AFF3    418.524494  1030    799     575     99551491    99565659

这个代码很好用。。。。我已经设法与
#sum_sub