[英]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 文件的一小部分 這是平均2017.csv文件的一小部分
我正在使用 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.