Python 在数据框中创建新变量时声明键错误

Python states Key Error when creating a new variable in a data frame

我正在清理许多变量(数据框中的列)以对所述变量执行文本分析。

我有一个名为 econ_data 的数据框。

这里我创建了一个'list'所有需要转换的变量,例如将所有文本转换为小写并删除停用词。

open_responses = ['choice_open_1_f', 'choice_open_1_m', 'choice_open_2_f ', 'choice_open_2_m']

然后我想创建一个 for 循环来清理这些变量,以便我可以执行文本分析。

for z in open_responses:
    econ_data[z] = econ_data[z].astype(str).str.replace('/',' ')
    econ_data[z] = econ_data[z].apply(lambda x: " ".join(x.lower() for x in x.split()))
    locals()[econ_data[f"{z}_stop"]] = econ_data[f"{z}"].apply(lambda x: " ".join(x for x in x.split() if x not in stop_words))
    

for 循环中的前两行有效,但是,当我尝试在条目中删除停用词后向数据框添加新变量时,我收到一条键错误消息(“KeyError:'choice_open_1_f_stop'").

有人可以解释一下我该如何解决这个问题吗?

非常感谢!

您收到错误消息是因为您试图获取未定义的 locals()[econ_data[f"{z}_stop"]] 的值。 你应该做一个简单的分配 econ_data[f"{z}_stop"] = 数据框处理并创建一个如果尝试分配给它就不存在的键。