从多个csv文件中获取数据,并打印任何年份的最高、最低天气湿度,还可以打印Python中的月份名称和日期

uqcuzwp8  于 2022-11-19  发布在  Python
关注(0)|答案(1)|浏览(106)


大家好。我有多个CSV文件,我正在用Python创建一个天气预报员应用程序。我正在从CSV文件中获取数据,下面是代码

import os
import csv

lst_temp = []
lst_temp_int = []
lst_hum = []
lst_hum_int = []
dates = []

class Weather:
    def main(self):
        path = r'C:\Users\someone\PycharmProjects\untitled\weatherfiles\\'
        os.system('cls')
        for files in os.listdir(path):
            if files.endswith('.txt'):
                with open(path + files, 'r') as weather:
                    input_file = csv.reader(weather)
                    for row in input_file:
                        date = row[0].split('-')
                        if date[0] == '2013':
                            lst_temp.append(row[1])
                            lst_hum.append(row[7])
                            lst_temp_int = [int(i) for i in lst_temp if i]
                            lst_hum_int = [int(i) for i in lst_hum if i]
                            sorted_lst = sorted(lst_temp_int)
                            sorted_hum_lst = sorted(lst_hum_int)
        
        print(f"Highest: {sorted_lst[-1]}C")
        print(f"Lowest: {sorted_lst[0]}C")
        print(f"Humid: {sorted_hum_lst[-1]}%")

他们给我的数据格式是

Highest: 70C
Lowest: -1C
Humid: 100%

我需要此格式的结果

Highest: 45C on June 23
Lowest: 01C on December 22
Humid: 95% on August 14

有人能帮我吗?我很感激,谢谢

erhoui1w

erhoui1w1#

您可能希望使用Pandas来解析数据文件。
假设所有.txt文件中的列名都相同:

import pandas as pd

data = pd.read_csv(filepath, sep=',', parse_dates=['PKT'])

之后,您可以使用.idxmax()检索最大温度的索引,如下所示:

max_i = df['Max TemperatureC'].idxmax()
max_temp_row = df.iloc[max_i]

或使用.idxmin()的最低温度

min_i = df['Max TemperatureC'].idxmin()
min_temp_row = df.iloc[max_i]

我强烈建议您阅读pandas documentation以了解更多信息。

相关问题