簡體   English   中英

如何僅排序和存儲兩個.CSV 文件中的前 3 個位置,然后使用 Python 將它們存儲到一個.CSV 文件中的兩列?

[英]How to sort and store only the top 3 locations from two .CSV files and then store them into two columns in one .CSV file using Python?

對文件 average2016.csv 和 average2017.csv 中的數據進行排序。 僅存儲每個文件的前 3 個位置。 前 3 個位置數據將存儲在一個文件中,命名為 top3.csv。 top3.csv 文件中的每一列都會存儲每年的結果。 因此,top3.csv 文件將包含 2016 和 2017 列。

這是平均 2016.csv 文件的一小部分2016 年平均值的一小部分 這是平均2017.csv文件的一小部分2017 年平均值的一小部分

我正在使用 Python 3.8 和 Pandas

我不知道如何 go 關於這個。 我需要對這些文件中的數據進行排序。 我只需要存儲 each.CSV 文件中的前 3 個位置。 前 3 個位置將是平均值的前 3 個平均值。CSV 文件。 然后我必須將每個平均文件中的前 3 個平均值存儲到一個文件中,top3.csv。 新的 .CSV 文件需要有兩列,2016 和 2017。

對於每個文件,我都在想一些類似的東西:

df = pd.read_csv('average2016.csv')

df.nlargest(3, ['SNOW'])

我想我明白了。 你需要兩件事,重新和文件名。

import re 
year_format = re.compile(r'[0-9]{4}')
result = pd.DataFrame()
for filename in ['average2016.csv', 'average2017.csv']:
    file = pd.read_csv(filename)
    # value_counts() will return a sorted series base on occurance
    # convert to dict and get keys to get the most occured locations 
    all_loc = dict(file['NAME'].value_counts()).keys()
    # delete the above line, and uncomment the following:
    # all_loc = list(dict(file['NAME'].value_counts()).items())
    # all_loc.sort(key=lambda item: item[1], revese=True)
    # all_loc = [item[0] for item in all_loc]
    most_loc = list(all_loc)[:3]
    year = year_format.search(filename).group()
    result[year] = most_loc
result.to_csv('yourfilename.csv', index=False)

暫無
暫無

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

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