首页 > 解决方案 > 如果不存在,则使用 Pandas 添加 comuln/s

问题描述

我正在使用 Pandas 和 PsychoPy 在数据框中重新排序我的结果。问题是数据框会根据参与者的表现而变化。但是,我想要一个通用数据框,其中不存在的列被创建为空。然后列必须在输出文件中按特定顺序排列。

假设我有一个来自参与者的数据框,其中包含以下列:

x = ["Error_1", "Error_2", "Error_3"]

我希望最终的数据框看起来像这样:

x = x[["Error_1", "Error_2", "Error_3", "Error_4"]]

Where"Error_4"被创建为一个空列。

我尝试应用这样的东西(改编自另一个问题):

if "Error_4" not in x:
    x["Error_4"] = ""

x = x[["Error_1", "Error_2", "Error_3", "Error_4"]]

原则上它应该可以工作,但是我或多或少有其他 70 列我应该这样做,而且对它们中的每一个都这样做似乎不切实际。

你有什么建议吗?

我还尝试创建一个包含所有可能列的新数据框,例如:

y = ["Error_1", "Error_2", "Error_3", "Error_4"]

但是,我仍然不清楚如何合并数据帧xy跳过具有相同标题的列。

标签: pythonpandasdataframepsychopy

解决方案


使用DataFrame.reindex

x = x.reindex(["Error_1", "Error_2", "Error_3", "Error_4"], axis=1, fill_value='')

推荐阅读