У меня есть фрейм данных Polars, содержащий несколько вопросов и ответов. Проблема в том, что каждый ответ содержится в отдельной колонке, а это значит, что у меня много избыточной информации. Поэтому я хотел бы иметь только один столбец для вопросов и другой для ответов.
Вот пример данных:
data = {
"ID" : [1,1,1],
"Question" : ["A","B","C"],
"Answer A" : ["Answer A", "Answer A", "Answer A"],
"Answer B" : ["Answer B", "Answer B", "Answer B"],
"Answer C" : ["Answer C", "Answer C", "Answer C"]
}
df = pl.DataFrame(data)
df
Мой подход заключается в создании других фреймов данных фильтра, а затем их объединении, однако мне хотелось бы более интересный подход к этой проблеме.
Мой текущий подход:< /p>
A_df = (
df
.drop(["Answer B","Answer C"])
.filter(pl.col("Question") == "A")
.rename({"Answer A" : "Answer"})
)
B_df = (
df
.drop(["Answer A","Answer C"])
.filter(pl.col("Question") == "B")
.rename({"Answer B" : "Answer"})
)
C_df = (
df
.drop(["Answer A","Answer B"])
.filter(pl.col("Question") == "C")
.rename({"Answer C" : "Answer"})
)
df_final = pl.concat([A_df,B_df,C_df])
Подробнее здесь: https://stackoverflow.com/questions/787 ... -dataframe