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

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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)