私は年ごとに天気に関する情報を持つcsvファイルを持っています。私は、CSVを最初の列はmm/dd/yyyy形式で日付あるのでPython - ループスルーディクショナリのfindall正規表現として
import csv, re
with open('weather_data.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
csvfile = csvfile.read()
years = {'year_92': re.findall(r'\d+/\d+/1992', csvfile), 'year_93': re.findall(r'\d+/\d+/1993', csvfile),
'year_94': re.findall(r'\d+/\d+/1994', csvfile), 'year_95': re.findall(r'\d+/\d+/1995', csvfile)}
のように、キーが年であり、値は一年以内にすべての日付を収集するための正規表現で辞書を作成しました2番目は温度です。私がしたいのは、最高の方法を使って1年間にすべての気温を取り、その平均を見つけることです。
現在、私は1992年のすべての気温をリストに追加するために辞書をループしています。そのリストを平均化することができます。
temps = csvfile[1]
temp_92 = []
for line in years.items(), temps:
temp_92.append(line)
print(temp_92)
ただし、これは明らかに問題です。コードは実行されますが、mm/dd/yyを戻します。私はcsvfile []を切り替えることを試みたが結果はなかった。ここでは、要求ごとにCSVからのいくつかの例のデータを次のとおりです。ここで
は私の出力が
[dict_items([('year_95', ['1/1/1995', '1/2/1995', '1/3/1995', '1/4/1995', '1/5/1995', '1/6/1995', '1/7/1995', '1/8/1995', '1/9/1995', '1/10/1995', '1/11/1995', '1/12/1995', '1/13/1995', '1/14/1995', '1/15/1995', '1/16/1995', '1/17/1995', '1/18/1995', '1/19/1995', '1/20/1995', '1/21/1995', '1/22/1995', '1/23/1995', '1/24/1995', '1/25/1995', '1/26/1995', '1/27/1995', '1/28/1995', '1/30/1995', '1/31/1995' ...and so on
EDIT次のようになります!私ができる最高のフォーマットしようとしました。
A1:日付B1:一時
A2:1992年10月1日B2:53
A3:1992年10月2日B3:58
A4:10/3/1992 B4:62
あなたのCSVファイルを数行追加できますか? – Stats4224
CSV行を追加しました – QuestionableWalrus
あなたのCSVを反映するように私の答えを更新しました – Stats4224