def format_raw_df(df):
    """
    데이터를 정제하고 질문과 대답을 합칩니다.
    :param df: 원본 DataFrame
    :return: 처리된 DataFrame
    """
    # 타입을 고치고 인덱스를 설정합니다.
    df["PostTypeId"] = df["PostTypeId"].astype(int)
    df["Id"] = df["Id"].astype(int)
    df["AnswerCount"] = df["AnswerCount"].fillna(-1)
    df["AnswerCount"] = df["AnswerCount"].astype(int)
    df["OwnerUserId"].fillna(-1, inplace=True)
    df["OwnerUserId"] = df["OwnerUserId"].astype(int)
    df.set_index("Id", inplace=True, drop=False)

    df["is_question"] = df["PostTypeId"] == 1

    # 문서화된 것 이외의 PostTypeId를 필터링합니다.
    df = df[df["PostTypeId"].isin([1, 2])]

    # 질문과 대답을 연결합니다.
    df = df.join(
        df[["Id", "Title", "body_text", "Score", "AcceptedAnswerId"]],
        on="ParentId",
        how="left",
        rsuffix="_question",
    )
    return df