import%20marimo%0A%0A__generated_with%20%3D%20%220.14.15%22%0Aapp%20%3D%20marimo.App(width%3D%22full%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20pandas%20as%20pd%0A%20%20%20%20import%20altair%20as%20alt%0A%20%20%20%20import%20duckdb%0A%20%20%20%20return%20alt%2C%20duckdb%2C%20pd%0A%0A%0A%40app.cell%0Adef%20_(pd)%3A%0A%20%20%20%20DATE_COLUMN%20%3D%20'%E5%B9%B4%E6%9C%88%E6%97%A5'%0A%20%20%20%20HIGH_TEMP_COLUMN%20%3D%20%20'%E6%9C%80%E9%AB%98%E6%B0%97%E6%B8%A9(%E2%84%83)'%0A%20%20%20%20HUMIDITY_COLUMN%20%3D%20'%E5%B9%B3%E5%9D%87%E6%B9%BF%E5%BA%A6(%EF%BC%85)'%0A%0A%20%20%20%20def%20read_kisyo_file(file_path_or_buffer)%3A%0A%20%20%20%20%20%20%20%20try%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20df%20%3D%20pd.read_csv(file_path_or_buffer%2C%20encoding%3D'shift-jis'%2C%20skiprows%3D4)%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20df%5B2%3A%5D%0A%20%20%20%20%20%20%20%20except%20Exception%20as%20e%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20print(f%22An%20error%20occurred%3A%20%7Be%7D%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20None%0A%20%20%20%20return%20DATE_COLUMN%2C%20HIGH_TEMP_COLUMN%2C%20HUMIDITY_COLUMN%2C%20read_kisyo_file%0A%0A%0A%40app.cell%0Adef%20_(read_kisyo_file)%3A%0A%20%20%20%20sendai%20%3D%20read_kisyo_file('sendai.csv')%0A%20%20%20%20chichibu%20%3D%20read_kisyo_file('chichibu.csv')%0A%20%20%20%20sapporo%20%3D%20read_kisyo_file('sapporo.csv')%0A%20%20%20%20okayama%20%3D%20read_kisyo_file('okayama.csv')%0A%20%20%20%20naha%20%3D%20read_kisyo_file('naha.csv')%0A%20%20%20%20tokyo%20%3D%20read_kisyo_file('tokyo.csv')%0A%0A%20%20%20%20return%20naha%2C%20sapporo%2C%20sendai%2C%20tokyo%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20DATE_COLUMN%2C%0A%20%20%20%20HIGH_TEMP_COLUMN%2C%0A%20%20%20%20HUMIDITY_COLUMN%2C%0A%20%20%20%20alt%2C%0A%20%20%20%20duckdb%2C%0A%20%20%20%20naha%2C%0A%20%20%20%20pd%2C%0A%20%20%20%20sapporo%2C%0A%20%20%20%20sendai%2C%0A%20%20%20%20tokyo%2C%0A)%3A%0A%20%20%20%20def%20make_monthly_average_high_temp(df%2C%20label%2C%20unit%3D'week')%3A%0A%20%20%20%20%20%20%20%20date_metrics%20%3D%20pd.DataFrame(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20'date'%3A%20df.loc%5B%3A%2C%20DATE_COLUMN%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'high'%3A%20df.loc%5B%3A%2C%20HIGH_TEMP_COLUMN%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20'humidity'%3A%20df.loc%5B%3A%2C%20HUMIDITY_COLUMN%5D%0A%20%20%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20%20%20return%20duckdb.query(f%22%22%22%0A%20%20%20%20%20%20%20%20WITH%20trunc%20AS%20(%0A%20%20%20%20%20%20%20%20%20%20SELECT%0A%20%20%20%20%20%20%20%20%20%20%20%20'%7Blabel%7D'%20AS%20label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20datetrunc('%7Bunit%7D'%2C%20strptime(date%2C%20'%25Y%2F%25m%2F%25d'))%20AS%20period%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20high%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20humidity%0A%20%20%20%20%20%20%20%20%20%20FROM%20date_metrics%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20SELECT%0A%20%20%20%20%20%20%20%20%20%20%20%20label%2C%20period%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20AVG(high)%20AS%20avg_high%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20AVG(humidity)%20AS%20avg_humidity%0A%20%20%20%20%20%20%20%20FROM%0A%20%20%20%20%20%20%20%20%20%20%20%20trunc%0A%20%20%20%20%20%20%20%20WHERE%0A%20%20%20%20%20%20%20%20%20%20%20%20period%20%3E%20DATE%20'2020-01-01'%0A%20%20%20%20%20%20%20%20GROUP%20BY%20label%2C%20period%0A%20%20%20%20%20%20%20%20%22%22%22).df()%0A%0A%0A%20%20%20%20alt.Chart(%0A%20%20%20%20%20%20%20%20pd.concat(%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20make_monthly_average_high_temp(sendai%2C%20'sendai')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20make_monthly_average_high_temp(chichibu%2C%20'chichibu')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20make_monthly_average_high_temp(tokyo%2C%20'tokyo')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20make_monthly_average_high_temp(sapporo%2C%20'sapporo')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20make_monthly_average_high_temp(naha%2C%20'naha')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20).mark_line().encode(%0A%20%20%20%20%20%20%20%20x%3D'period'%2C%0A%20%20%20%20%20%20%20%20y%3Dalt.Y('avg_high')%2C%0A%20%20%20%20%20%20%20%20color%3D'label'%2C%0A%20%20%20%20%20%20%20%20tooltip%3D%5B'period'%2C%20'avg_high'%2C%20'label'%5D%0A%20%20%20%20).properties(title%3D'Weekly%20Average%20of%20Daily%20Highest%20Temperature')%0A%0A%20%20%20%20return%20(make_monthly_average_high_temp%2C)%0A%0A%0A%40app.cell%0Adef%20_(alt%2C%20make_monthly_average_high_temp%2C%20naha%2C%20pd%2C%20sapporo%2C%20sendai%2C%20tokyo)%3A%0A%20%20%20%20alt.Chart(%0A%20%20%20%20%20%20%20%20pd.concat(%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20make_monthly_average_high_temp(sendai%2C%20'sendai'%2C%20unit%3D'month')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20make_monthly_average_high_temp(tokyo%2C%20'tokyo'%2C%20unit%3D'month')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20make_monthly_average_high_temp(sapporo%2C%20'sapporo'%2C%20unit%3D'month')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20make_monthly_average_high_temp(naha%2C%20'naha'%2C%20unit%3D'month')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20).mark_line().encode(%0A%20%20%20%20%20%20%20%20x%3D'period'%2C%0A%20%20%20%20%20%20%20%20y%3Dalt.Y('avg_humidity'%2C%20scale%3Dalt.Scale(domain%3D%5B50%2C%20100%5D))%2C%0A%20%20%20%20%20%20%20%20color%3D'label'%2C%0A%20%20%20%20%20%20%20%20tooltip%3D%5B'period'%2C%20'avg_humidity'%2C%20'label'%5D%0A%20%20%20%20).properties(title%3D'Monthly%20Average%20Of%20Humidity')%0A%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
964d73ac56082b2abb20b4e04ec7b4e7614df3a95c7b839f46a22950bda99f04