簡體   English   中英

Python 從輸入文件繪制數據

[英]Python Graphing data from input file

我需要從以前的作業中獲取天氣數據並制作各種圖表。 我最麻煩的數據集是描述。 到目前為止,我只有數據文件。 我知道我需要運行一個 for 循環來讀取它並使數據可繪制。 到目前為止,我所做的只是在文件中讀取。

descriptions = open('descriptions.txt', 'r',encoding=('utf-8'))

數據看起來像這樣。 我最終需要做的是制作一個條形圖,計算某些關鍵字的實例(例如下雨或陣雨為雨。晴天/晴天等)。 我將如何運行循環以使日子與正確的城市相關聯? 然后我如何將字數與正確的日子聯系起來?

克利夫蘭數據
周日克利夫蘭
可能有陣雨和片狀霧,大雨和片狀霧,然后有少量陣雨,晴朗和微風,晴朗,陽光充足,雲層增加
星期一克利夫蘭
晴天,晴天,大部分晴天,先有陣雨,然后有陣雨,有陣雨,有陣雨,然后有部分晴天和微風
周二克利夫蘭
晴天,雲層增多,有輕微陣雨,然后下雨,下雨,可能有陣雨,部分多雲和大風

底特律數據
周日底特律
小概率陣雨,逐漸晴天,晴天,晴天,晴天,多雲,然后可能有陣雨
星期一底特律
晴天、晴天、部分多雲然后可能有陣雨、陣雨、可能陣雨然后可能雨/雪、部分晴天、大部分晴天
周二底特律
有陣雨,有輕微陣雪,然后有陣雨/降雪,有輕微陣雪,然后大部分晴天,晴天,晴天,晴天

好的,這是我的看法(評論中的解釋;如果您有問題,請詢問他們):

# opens and reads the whole file
with open('text_file.txt') as file:
    data = file.read()

# splits read data in groups between whom are \n\n and stores them in a list
data = data.split('\n\n')

# creates a dictionary
data_by_city = {}

# this loops over each section in the data list (each city info block)
for item in data:
    # creates a dictionary to store text info
    city_data = {}
    
    # for each city info entry removes all \n
    item = item.replace('\n', ' ')
    # splits each city info by spaces
    split_item = item.split(' ')
    # checks if word is in city_data and if not then adds it if it exists adds up the count
    for word in split_item:
        if word not in city_data.keys():
            city_data[word] = 1
        else:
            city_data[word] += 1
    
    # creates an entry for data_by_city and makes the key name of the city and city_data as the assigned value
    data_by_city[split_item[0] if split_item[0] != '' else split_item[1]] = city_data

# prints data_by_city
print(data_by_city)

這是輸入文件(行顯示文件的邊界):

克利夫蘭數據 星期天克利夫蘭陣雨 可能有陣雨和大霧,大雨和陣陣大霧,然后有輕微陣雨,晴天和微風,晴,晴,多雲 星期一克利夫蘭晴,晴,大部分晴,陣雨然后陣雨,陣雨,陣雨然后部分陣雨周二陽光明媚,微風輕拂 克利夫蘭 晴朗,多雲,有小陣雨,然后下雨,下雨,可能有陣雨,部分多雲和大風

底特律數據 周日 底特律 小概率陣雨,逐漸晴天,晴天,晴天,晴天,多雲,然后可能有陣雨 星期一 底特律晴天,晴天,部分多雲,然后可能陣雨,陣雨,偶有陣雨,然后偶有雨/雪,部分晴天,大部分晴天底特律有陣雨,有輕微陣雪,然后有陣雨/降雪,有輕微陣雪,然后基本晴,晴,晴,晴

並且兩個信息塊之間有兩個空格,並且行和信息塊之間沒有空格

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM