gpt4 book ai didi

Python-文件的列平均

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

我有一个文件,其内容如下:

A B 2 4
C D 1 2
A D 3 4
A D 1 2
A B 4 7 and so on..

我的目标是获得如下最终输出:

A B 3 5.5
C D 1 2
A D 2 3

也就是说,对于前两列的每个唯一组合,结果应该是文件其他两列的列平均。我尝试使用循环,但它只会增加程序的复杂性。有没有其他方法可以达到目的。

示例代码:

with open(r"C:\Users\priya\Desktop\test.txt") as f:
content = f.readlines()
content = [x.split() for x in content]
for i in range(len(content)):
valueofa=[content[i][2]]
valueofb=[content[i][3]]
for j in xrange(i+1,len(content)):
if content[i][0]==content[j][0] and content[i][1]==content[j][1]:
valueofa.append(content[j][2])
valueofb.append(content[j][3])

我打算按索引取两个列表的平均值。

最佳答案

您可以将每个字母组合存储为字典中的元组,然后在最后取平均值,例如:

d = {}
with open(r"C:\Users\priya\Desktop\test.txt") as f:
for line in f:
a, b, x, y = line.split()
d.setdefault((a, b), []).append((int(x), int(y)))

for (a, b), v in d.items():
xs, ys = zip(*v)
print("{} {} {:g} {:g}".format(a, b, sum(xs)/len(v), sum(ys)/len(v)))

输出:

A B 3 5.5
C D 1 2
A D 2 3

关于Python-文件的列平均,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49992458/

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