summaryrefslogtreecommitdiff
path: root/hikakucsv.py
diff options
context:
space:
mode:
authorhaturatu <warsaw21g@gmail.com>2024-06-13 03:02:41 +0900
committerhaturatu <warsaw21g@gmail.com>2024-06-13 03:02:41 +0900
commit448dad696147a15d475a5a52a84ef77c8ffa4078 (patch)
treed23347fcb5cf3440181e198a69a459223f74b0c2 /hikakucsv.py
first commit
Diffstat (limited to 'hikakucsv.py')
-rwxr-xr-xhikakucsv.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/hikakucsv.py b/hikakucsv.py
new file mode 100755
index 0000000..c8bd8b5
--- /dev/null
+++ b/hikakucsv.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python
+
+import streamlit as st
+import pandas as pd
+import matplotlib.pyplot as plt
+
+# Streamlitアプリケーションのタイトル設定
+st.title('CSVファイル比較チャート')
+
+# アップロードボックスの作成
+uploaded_files = st.file_uploader("ここにCSVファイルをドラッグ&ドロップ", type=['csv'], accept_multiple_files=True)
+
+if uploaded_files:
+ # ファイルの最大数を10に制限
+ if len(uploaded_files) > 10:
+ st.error("最大10個のファイルをアップロードしてください。")
+ st.stop()
+
+ # アップロードされたファイルをリストとして処理
+ file_list = []
+ for file in uploaded_files:
+ df = pd.read_csv(file)
+ file_list.append(df)
+ st.write(f"アップロードされたファイルのカラム名: {df.columns.tolist()}")
+
+ date_column = 'DATE' # 日付カラムのデフォルト値
+
+ # 各DataFrameに対して日付カラムの存在を確認
+ for df in file_list:
+ if date_column not in df.columns: # 日付カラムが存在しない場合、エラーメッセージを表示
+ st.error(f"各CSVファイルには'{date_column}'という名前の日付カラムが必要です。カラム名: {df.columns.tolist()}")
+ st.stop()
+ df[date_column] = pd.to_datetime(df[date_column])
+
+ # プロットの作成
+ plt.figure(figsize=(12, 6))
+
+ # ファイルごとにプロットしたいカラムを選択
+ for i, df in enumerate(file_list):
+ col = st.selectbox(f'ファイル{i+1}のカラムを選択してください', [col for col in df.columns if col != date_column], key=f'col_select_{i}')
+ # データフレームごとにプロット
+ plt.plot(df[date_column], df[col], label=f'{col} (File {i+1})')
+
+ plt.xlabel(date_column)
+ plt.ylabel('Value')
+ plt.title('CSV to FRED')
+ plt.legend()
+
+ st.pyplot(plt.gcf())
+else:
+ st.write("CSVファイルをアップロードしてください。")
+