cc9542 2022-04-07 17:02 采纳率: 96.7%
浏览 41
已结题

python 文件操作 循环 判断 数据处理

问题遇到的现象和发生背景
#data.txt文件内容
"""
id  date        city     temp   wind
0   03/01/2016   BJ      8      5
1   17/01/2016   BJ      12     2
2   31/01/2016   BJ      19     2
3   14/02/2016   BJ      -3     3
4   28/02/2016   BJ      19     2
5   13/03/2016   BJ      5      3
6   27/03/2016   SH      -4     4
7   10/04/2016   SH      19     3

8   24/04/2016   SH      20     3
9   08/05/2016   SH      17     3
10  22/05/2016   SH      4      2
11  05/06/2016   SH      -10    4
12  19/06/2016   SH      0      5
13  03/07/2016   SH      -9     5

14  17/07/2016   GZ      10     2
15  31/07/2016   GZ      -1     5
16  14/08/2016   GZ      1      5
17  28/08/2016   GZ      25     4
18  11/09/2016   SZ      20     1
19  25/09/2016   SZ      -10    4
"""
#下面是求某个城市的平均值
import re
f = open("data.txt","r")
a = []
b = []
for line in f.readlines()[1:]:
    # 去除空行,当不给split函数传递任何参数时,分隔符sep会采用任意形式的空白字符:空格、tab、换行、回车
    if len(line.split()) == 0:
        continue
    j = re.split(r"\s+", line.rstrip())
    if(j[2] == 'SH'):
        a.append(int(j[3]))
        b.append(int(j[4]))
print("\nHS temp平均值为{} wind平均值为{}".format(sum(a)/len(a),sum(b)/len(b)))
f.close()

#问题 怎么把上面的代码改成求所有城市的平均值?

img


这个是求单个城市的平均值的结果

#问题 怎么把上面的代码改成求所有城市的平均值?

我想要达到的结果

img

  • 写回答

1条回答 默认 最新

  • hellobigorange 人工智能领域新星创作者 2022-04-07 17:18
    关注
    
    import re
    
    f = open("data.txt", "r")
    d = {}
    for line in f.readlines()[1:]:
        # 去除空行,当不给split函数传递任何参数时,分隔符sep会采用任意形式的空白字符:空格、tab、换行、回车
        if len(line.split()) == 0:
            continue
        j = re.split(r"\s+", line.rstrip())
        if j[2] not in d.keys():
            d[j[2]]=[[],[]]
        d[j[2]][0].append(int(j[3]))
        d[j[2]][1].append(int(j[4]))
    for idx,val in d.items():
    
        print("\n{} temp平均值为{} wind平均值为{}".format(idx,sum(val[0]) / len(val[0]), sum(val[1]) / len(val[1])))
    f.close()
    

    img


    如有帮助,希望点一下下采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月13日
  • 已采纳回答 4月7日
  • 创建了问题 4月7日

悬赏问题

  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动
  • ¥15 大一C语言期末考试,求帮助🙏🙏
  • ¥15 ch340驱动未分配COM