Python 如何将一个文件中给定的时间间隔映射到另一个文件,并获得超过指定范围的项目计数?
我有两个文件如下: file1.txtPython 如何将一个文件中给定的时间间隔映射到另一个文件,并获得超过指定范围的项目计数?,python,pandas,Python,Pandas,我有两个文件如下: file1.txt #CHR #START #END #GENE #INDEX #DEPTH chr1 11106936 11106946 MTOR 1 7 chr1 11106936 11106946 MTOR 2 7 chr1 11106936 11106946 MTOR 3 40 chr1 11106936 1110
#CHR #START #END #GENE #INDEX #DEPTH
chr1 11106936 11106946 MTOR 1 7
chr1 11106936 11106946 MTOR 2 7
chr1 11106936 11106946 MTOR 3 40
chr1 11106936 11106946 MTOR 4 40
chr1 11106936 11106946 MTOR 5 43
chr1 11106936 11106946 MTOR 6 50
chr1 11106936 11106946 MTOR 7 55
chr1 11106936 11106946 MTOR 8 56
chr1 11106936 11106946 MTOR 9 55
chr1 11106936 11106946 MTOR 10 55
chr1 11106936 11106946 MTOR 11 8
chr1 11106980 11106995 MTOR 1 8
chr1 11106980 11106995 MTOR 2 31
chr1 11106980 11106995 MTOR 3 30
chr1 11106980 11106995 MTOR 4 28
chr1 11106980 11106995 MTOR 5 50
chr1 11106980 11106995 MTOR 6 51
chr1 11106980 11106995 MTOR 7 52
chr1 11106980 11106995 MTOR 8 51
chr1 11106980 11106995 MTOR 9 42
chr1 11107388 11107396 SDPR 1 8
chr1 11107388 11107396 SDPR 2 8
chr1 11107388 11107396 SDPR 3 8
chr1 11107388 11107396 SDPR 4 8
chr1 11107388 11107396 SDPR 5 8
chr1 11107388 11107396 SDPR 6 8
chr1 11107388 11107396 SDPR 7 9
chr1 11107388 11107396 SDPR 8 10
chr1 11107388 11107396 SDPR 9 10
chr2 24658622 24658634 NCOA1 1 38
chr2 24658622 24658634 NCOA1 2 38
chr2 24658622 24658634 NCOA1 3 38
chr2 24658622 24658634 NCOA1 4 46
chr2 24658622 24658634 NCOA1 5 46
chr2 24658622 24658634 NCOA1 6 47
chr2 24658622 24658634 NCOA1 7 48
chr2 24658622 24658634 NCOA1 8 49
chr2 24658622 24658634 NCOA1 9 49
chr2 24658622 24658634 NCOA1 10 50
chr2 24658622 24658634 NCOA1 11 50
chr2 24658622 24658634 NCOA1 12 49
chr2 24658622 24658634 NCOA1 13 49
#CHR #START #END #GENE #MEAN
chr1 11106936 11106946 MTOR 24.4648438
chr1 11106980 11106995 MTOR 17.1910114
chr1 11107388 11107396 SDPR 29.2108269
chr2 24658622 24658634 NCOA1 12.6104975
#CHR #START #END #GENE #MEAN gt30 gt40 gt50
0 chr1 11106936 11106946 MTOR 24.464844 8 8 5
1 chr1 11106980 11106995 MTOR 17.191011 7 5 4
2 chr1 11107388 11107396 SDPR 29.210827 0 0 0
3 chr2 24658622 24658634 NCOA1 12.610498 13 10 2
和file2.txt
#CHR #START #END #GENE #INDEX #DEPTH
chr1 11106936 11106946 MTOR 1 7
chr1 11106936 11106946 MTOR 2 7
chr1 11106936 11106946 MTOR 3 40
chr1 11106936 11106946 MTOR 4 40
chr1 11106936 11106946 MTOR 5 43
chr1 11106936 11106946 MTOR 6 50
chr1 11106936 11106946 MTOR 7 55
chr1 11106936 11106946 MTOR 8 56
chr1 11106936 11106946 MTOR 9 55
chr1 11106936 11106946 MTOR 10 55
chr1 11106936 11106946 MTOR 11 8
chr1 11106980 11106995 MTOR 1 8
chr1 11106980 11106995 MTOR 2 31
chr1 11106980 11106995 MTOR 3 30
chr1 11106980 11106995 MTOR 4 28
chr1 11106980 11106995 MTOR 5 50
chr1 11106980 11106995 MTOR 6 51
chr1 11106980 11106995 MTOR 7 52
chr1 11106980 11106995 MTOR 8 51
chr1 11106980 11106995 MTOR 9 42
chr1 11107388 11107396 SDPR 1 8
chr1 11107388 11107396 SDPR 2 8
chr1 11107388 11107396 SDPR 3 8
chr1 11107388 11107396 SDPR 4 8
chr1 11107388 11107396 SDPR 5 8
chr1 11107388 11107396 SDPR 6 8
chr1 11107388 11107396 SDPR 7 9
chr1 11107388 11107396 SDPR 8 10
chr1 11107388 11107396 SDPR 9 10
chr2 24658622 24658634 NCOA1 1 38
chr2 24658622 24658634 NCOA1 2 38
chr2 24658622 24658634 NCOA1 3 38
chr2 24658622 24658634 NCOA1 4 46
chr2 24658622 24658634 NCOA1 5 46
chr2 24658622 24658634 NCOA1 6 47
chr2 24658622 24658634 NCOA1 7 48
chr2 24658622 24658634 NCOA1 8 49
chr2 24658622 24658634 NCOA1 9 49
chr2 24658622 24658634 NCOA1 10 50
chr2 24658622 24658634 NCOA1 11 50
chr2 24658622 24658634 NCOA1 12 49
chr2 24658622 24658634 NCOA1 13 49
#CHR #START #END #GENE #MEAN
chr1 11106936 11106946 MTOR 24.4648438
chr1 11106980 11106995 MTOR 17.1910114
chr1 11107388 11107396 SDPR 29.2108269
chr2 24658622 24658634 NCOA1 12.6104975
#CHR #START #END #GENE #MEAN gt30 gt40 gt50
0 chr1 11106936 11106946 MTOR 24.464844 8 8 5
1 chr1 11106980 11106995 MTOR 17.191011 7 5 4
2 chr1 11107388 11107396 SDPR 29.210827 0 0 0
3 chr2 24658622 24658634 NCOA1 12.610498 13 10 2
我想将file2.txt中给出的间隔映射到file1.txt并生成如下输出文件:
#CHR #START #END #GENE #MEAN #<=30 #<=40 #<=50
chr1 11106936 11106946 MTOR 24.4648438 8 8 5
chr1 11106980 11106995 MTOR 17.1910114 6 5 4
chr1 11107388 11107396 SDPR 29.2108269 0 0 0
chr2 24658622 24658634 NCOA1 12.6104975 13 10 2
#CHR#开始#结束#基因#平均#一种方法
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')
df2.merge(gt30, on='#START').merge(gt40, on='#START').merge(gt50, on='#START')
输出
#CHR #START #END #GENE #INDEX #DEPTH
chr1 11106936 11106946 MTOR 1 7
chr1 11106936 11106946 MTOR 2 7
chr1 11106936 11106946 MTOR 3 40
chr1 11106936 11106946 MTOR 4 40
chr1 11106936 11106946 MTOR 5 43
chr1 11106936 11106946 MTOR 6 50
chr1 11106936 11106946 MTOR 7 55
chr1 11106936 11106946 MTOR 8 56
chr1 11106936 11106946 MTOR 9 55
chr1 11106936 11106946 MTOR 10 55
chr1 11106936 11106946 MTOR 11 8
chr1 11106980 11106995 MTOR 1 8
chr1 11106980 11106995 MTOR 2 31
chr1 11106980 11106995 MTOR 3 30
chr1 11106980 11106995 MTOR 4 28
chr1 11106980 11106995 MTOR 5 50
chr1 11106980 11106995 MTOR 6 51
chr1 11106980 11106995 MTOR 7 52
chr1 11106980 11106995 MTOR 8 51
chr1 11106980 11106995 MTOR 9 42
chr1 11107388 11107396 SDPR 1 8
chr1 11107388 11107396 SDPR 2 8
chr1 11107388 11107396 SDPR 3 8
chr1 11107388 11107396 SDPR 4 8
chr1 11107388 11107396 SDPR 5 8
chr1 11107388 11107396 SDPR 6 8
chr1 11107388 11107396 SDPR 7 9
chr1 11107388 11107396 SDPR 8 10
chr1 11107388 11107396 SDPR 9 10
chr2 24658622 24658634 NCOA1 1 38
chr2 24658622 24658634 NCOA1 2 38
chr2 24658622 24658634 NCOA1 3 38
chr2 24658622 24658634 NCOA1 4 46
chr2 24658622 24658634 NCOA1 5 46
chr2 24658622 24658634 NCOA1 6 47
chr2 24658622 24658634 NCOA1 7 48
chr2 24658622 24658634 NCOA1 8 49
chr2 24658622 24658634 NCOA1 9 49
chr2 24658622 24658634 NCOA1 10 50
chr2 24658622 24658634 NCOA1 11 50
chr2 24658622 24658634 NCOA1 12 49
chr2 24658622 24658634 NCOA1 13 49
#CHR #START #END #GENE #MEAN
chr1 11106936 11106946 MTOR 24.4648438
chr1 11106980 11106995 MTOR 17.1910114
chr1 11107388 11107396 SDPR 29.2108269
chr2 24658622 24658634 NCOA1 12.6104975
#CHR #START #END #GENE #MEAN gt30 gt40 gt50
0 chr1 11106936 11106946 MTOR 24.464844 8 8 5
1 chr1 11106980 11106995 MTOR 17.191011 7 5 4
2 chr1 11107388 11107396 SDPR 29.210827 0 0 0
3 chr2 24658622 24658634 NCOA1 12.610498 13 10 2
1) 你试过什么?2) 这是python还是bash的问题?我不知道这个问题有什么问题?。主持人结束了这个问题,我问的问题很清楚。我接受我没有发布我尝试过的代码的事实。。。。这是因为问题变得越来越长