前提・実現したいこと
現在、本を読みながら、気象データの解析を行っています。
そこでなぜかわからないですが、ずっとエラーが出てしまいます。
解決のほうよろしくお願いします。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "A:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 4381, in get_value return libindex.get_value_box(s, key) File "pandas/_libs/index.pyx", line 52, in pandas._libs.index.get_value_box File "pandas/_libs/index.pyx", line 48, in pandas._libs.index.get_value_at File "pandas/_libs/util.pxd", line 113, in pandas._libs.util.get_value_at File "pandas/_libs/util.pxd", line 98, in pandas._libs.util.validate_indexer TypeError: 'str' object cannot be interpreted as an integer During handling of the above exception, another exception occurred: Traceback (most recent call last): File "A:/Python_code/weather_data/heikin.py", line 9, in <module> m, d, v = (int(row['月']), int(row['日']), float(row['気温'])) File "A:\Anaconda\lib\site-packages\pandas\core\series.py", line 868, in __getitem__ result = self.index.get_value(self, key) File "A:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 4389, in get_value raise e1 File "A:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 4375, in get_value tz=getattr(series.dtype, 'tz', None)) File "pandas/_libs/index.pyx", line 81, in pandas._libs.index.IndexEngine.get_value File "pandas/_libs/index.pyx", line 89, in pandas._libs.index.IndexEngine.get_value File "pandas/_libs/index.pyx", line 132, in pandas._libs.index.IndexEngine.get_loc File "pandas/_libs/hashtable_class_helper.pxi", line 1601, in pandas._libs.hashtable.PyObjectHashTable.get_item File "pandas/_libs/hashtable_class_helper.pxi", line 1608, in pandas._libs.hashtable.PyObjectHashTable.get_item KeyError: '月'
該当のソースコード
<file_trim.py> in_file = 'data.csv' out_file = 'ten_years_tem.csv' # ファイルを一行ずつ読み込む with open(in_file, 'rt', encoding='Shift_JIS') as fr: lines = fr.readlines() # ヘッダーをそぎ落として新しくつける lines = ['年, 月, 日, 気温, 品質, 均質\n'] + lines[5:] lines = map(lambda v: v.replace('/', ','), lines) # 年/月/日となっているのを,に置き換える result = ''.join(lines).strip() # できたものをくっつけて、空白文字を消す print(result) # ファイルを出力 with open(out_file, 'wt', encoding='utf-8') as fw: fw.write(result) print('saved') <heikin.py> import pandas as pd # PandasでCSVを読み込む ---(*1) df = pd.read_csv("ten_years_tem.csv", encoding="utf-8") # 日付ごとに気温をリストにまとめる ---(*2) md = {} for i, row in df.iterrows(): m, d, v = (int(row['月']), int(row['日']), float(row['気温'])) key = str(m) + "/" + str(d) if not(key in md): md[key] = [] md[key] += [v] # 日付ごとに平均を求める ---(*3) avs = {} for key in md: v = avs[key] = sum(md[key]) / len(md[key]) print("{0} : {1}".format(key, v))
試したこと
何度もかきなおしたり、エラーについて検索した。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー