如何根据另一个文件中的列对文件进行排序?

2024-09-26 18:08:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件,我想根据另一个文件中的列进行排序。这两个文件都有一个公共列,排序应该根据第一个文件的排序方式进行。你知道吗

例如: 文件\u 1包含:

chr2L   2808299 2808300 EOG698VMB   4.15912 +   1011

chr2L   5218259 5218260 EOG6ZPFGT   15.0025 +   91

chr2L   5329859 5329860 EOG62JPCT   30.1536 +   30

chr2L   6225049 6225050 EOG60024V   3.26788 +   29

chr2L   6255843 6255844 EOG61C7HF   12.6259 +   32

chr2L   6481023 6481024 EOG6CZC26   1.33686 +   176

chr2L   8522135 8522136 EOG6FN543   40.2544 +   142

chr2L   9769068 9769069 EOG6FBJDN   17.8248 +   15

chr2L   9782391 9782392 EOG6R24FN   9.50656 +   393

文件2包含:

chrXL_group1e   895799  895800  EOG67ST24   71.1687 +   62

chrXL_group1e   3113233 3113234 EOG6PVPKK   7.19303 +   847

chrXL_group1e   3424413 3424414 EOG6QC1SM   6.76991 +   81

chrXL_group1e   5698899 5698900 EOG651FCJ   93.5094 +   124

chrXL_group1e   6595546 6595547 EOG60K8KJ   28.349  +   185

chrXL_group1e   7594832 7594833 EOG6C2HX6   1.7771  +   2782

chrXL_group1e   8307304 8307305 EOG6NP7QS   229.754 +   35

chrXL_group1e   9922625 9922626 EOG6X3HMJ   8.8855  +   3744

chrXL_group1e   10297871 10297872 EOG6F7P63 2.70796 +   106

chrXL_group1e   11284647    11284648    EOG62Z5BX   282.474 +   4173

chr4_group5 213215  213216  EOG6J9NKZ   834.56  +   32

chrXR_group5    636614  636615  EOG6PVPK4   4.56969 +   152

我想根据文件1的第4列(蛋白质ID)中给出的顺序对文件2的内容进行排序。 (例子中会有不同之处。如果你愿意,我可以上传原始文件。) 如何在Python中实现这一点?
我不认为蛋白质ID有任何特殊的分类方式。但它们在文件1中的排序方式很重要。你知道吗

其他细节:

编程语言:Python 3.5.1

操作系统:Ubuntu 16.04 LTS

谢谢你的回答。:)


Tags: 文件id排序方式蛋白质group5chr2leog6zpfgt
1条回答
网友
1楼 · 发布于 2024-09-26 18:08:05

函数sorted可以接收一个名为key的关键字参数,它是一个为列表中的每个元素返回一个可比较参数的函数。你知道吗

如果您有两个列表,其中一个列表中有File_1列,另一个列表中有File_2列,则可以使用:

indexes = sorted(range(len(File_2Column)), key=lambda i: File_1Col4[i])
sortedFile_2Col = [File_2Column[i] for i in indexes]
# you can repeat this line for all the columns you want to be sorted by that order

相关问题 更多 >

    热门问题