gpt4 book ai didi

Python - 提取标识符列表和相应的值

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:27 25 4
gpt4 key购买 nike

我正在寻找有关对数据集进行排序的最佳方法的建议。

我有以下输入(“data.txt”):

100    G(1,2)            1.0943        
100 G(1,3) 1.0933
101 G(1,2) 1.5147
101 G(1,3) 1.2372
101 G(1,4) 1.0955
... (10,000)

理想的输出是一个包含列的文本文件:

 G(1,2)        G(1,3)         G(1,4)
1.0943 1.0933 1.0955
1.5147 1.2372

我的第一个想法是创建一个包含多个值的字典 - 其中每个“G(x,x)”都是一个键,对应的数字是一个值。

这是解决这个问题的最佳方法,还是有其他一些 python 函数可以提高排序效率?

感谢大家的建议 - 我正在研究利用/学习 itertools.groupby 函数,正如下面几个用户所建议的那样。 pandas resort 方法也非常有用。

最佳答案

你可以使用itertools.groupby:

import re
import itertools
data = [[b for b in c if b] for c in [re.split("\s+", i.strip('\n')) for i in open('file.txt')] if c]
new_final_data = [(a, list(b)) for a, b in itertools.groupby(sorted(data, key=lambda x:x[1][-2]), key=lambda x:x[1])]
final_data = {a:[[c for c in i if re.findall('\d+\.\d+', c)][0] for i in b] for a, b in new_final_data}
print(final_data)

输出:

{'G(1,3)': ['1.0933', '1.2372'], 'G(1,4)': ['1.0955'], 'G(1,2)': ['1.0943', '1.5147']}

关于Python - 提取标识符列表和相应的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46898359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com