import pandas as pd

# CSVファイルからデータを読み込む関数
def read_unit_data(file_path):
    df = pd.read_csv(file_path, sep=",", dtype={"単元番号": str, "単元名": str})
    df = df.dropna(subset=["単元番号", "単元名"])  # NaNを含む行を削除
    unit_numbers = df["単元番号"].tolist()
    unit_names = df["単元名"].tolist()
    return unit_numbers, unit_names

# カテゴリと略称のデータ
categories_data = {
    "category": ["小学校国語", "小学校算数", "小学校英語", "小学校理科", "小学校社会",
                 "中学国語", "中学数学", "中学英語", "中学理科", "中学社会",
                 "高校国語", "高校数学", "高校英語",
                 "高校物理", "高校科学", "高校生物", "高校地学",
                 "高校地理", "高校歴史", "高校公共"],
    "path": ["JE", "ME", "EE", "SE", "CE", "JJ", "MJ", "EJ", "SJ", "CJ", "JH", "MH", "EH", "BH", "KH", "SH", "CH", "GH", "HH", "PH"]
}

# カテゴリデータから単元データを取得
unit_data = {}
for i, category in enumerate(categories_data["category"]):
    unit_numbers, unit_names = read_unit_data(f"{categories_data['path'][i]}.csv")
    unit_data[category] = {"unit_numbers": unit_numbers, "unit_names": unit_names}

# DataFrameを作成
categories_df = pd.DataFrame({
    "category": categories_data["category"],
    "subjects": [unit_data[category]["unit_names"] for category in categories_data["category"]],
    "units": [unit_data[category]["unit_numbers"] for category in categories_data["category"]],
    "path": categories_data["path"]
})

# 結果を表示
print(categories_df)
