前提・実現したいこと
for range構文で2010年から2019年までのdfを取得したのち、
それらを結合させたいです。
該当のソースコード
import pandas as pd from datetime import datetime import numpy as np import matplotlib.dates as dt import matplotlib.pyplot as plt for i in range(10): year=2010+i place="秋田" date_time, YuugiHako, YuugihaShuuki = [], [], [] with open(f"{place}/{place} {year}.txt", 'r') as f: f.readline() for line in f: date_str = line[0:12].replace(' ', '0') date_str = f"{date_str[0:4]}-{date_str[4:6]}-{date_str[6:8]} {date_str[8:10]}:{date_str[10:12]}" date_time.append(datetime.strptime(date_str, "%Y-%m-%d %H:%M")) YuugiHako.append(float(line[36:42])) YuugihaShuuki.append(float(line[43:49])) df= pd.DataFrame({"日付": date_time, "有義波高 (m)": YuugiHako, "有義波周期 (s)": YuugihaShuuki}) df = df.set_index("日付") df1=pd.concat(df)
###修正したコード
import pandas as pd from datetime import datetime import numpy as np import matplotlib.dates as dt import matplotlib.pyplot as plt for i in range(10): year=2010+i place="秋田" date_time, YuugiHako, YuugihaShuuki = [], [], [] with open(f"{place}/{place} {year}.txt", 'r') as f: f.readline() for line in f: date_str = line[0:12].replace(' ', '0') date_str = f"{date_str[0:4]}-{date_str[4:6]}-{date_str[6:8]} {date_str[8:10]}:{date_str[10:12]}" date_time.append(datetime.strptime(date_str, "%Y-%m-%d %H:%M")) YuugiHako.append(float(line[36:42])) YuugihaShuuki.append(float(line[43:49])) df= pd.DataFrame({"日付": date_time, "有義波高 (m)": YuugiHako, "有義波周期 (s)": YuugihaShuuki}) df = df.set_index("日付") dfs.append(df) df1 = pd.concat(dfs)
発生している問題・エラーメッセージ
TypeError: first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"
補足情報(FW/ツールのバージョンなど)
python3
jupyter notebook
回答1件
あなたの回答
tips
プレビュー