首页 > 解决方案 > ValueError:无法使用多维键索引,Python

问题描述

我试图用 Python 编写程序,但出现以下错误:

raise ValueError("Cannot index with multidimensional key")
ValueError: Cannot index with multidimensional key

当我调用此函数时发生错误:

def pd_remove_condition(data,row,conditions):

for i in range(len(conditions)):
    data = data.loc[data[row] != conditions[i]]

return data

该函数被多次调用,只有一次出错。数据是从简单的 csv 导入的数据框。我有"Significant Smoker","Current Smoker""Heavy Drinker"用于计算列的列"Heavy Smoker or Drinker"

adjusted_data["Smoker"] = np.where(adjusted_data["Significant Smoker"]=="No","Not at all",adjusted_data["Current Smoker"])
adjusted_data["Smoker"] = np.where(np.logical_or(adjusted_data["Smoker"]=="Not asked or Missing",adjusted_data["Smoker"]=="Don´t Know/Not Sure"),"Unknown", adjusted_data["Smoker"])
adjusted_data["Smoker"] = np.where(adjusted_data["Smoker"]=="Refused","Unknown", adjusted_data["Smoker"])
adjusted_data["Heavy Smoker or Drinker"] = np.where(np.logical_or(adjusted_data["Smoker"]=="Every day",adjusted_data["Heavy Drinker"]==2),True, False)
adjusted_data["Heavy Smoker or Drinker"] = np.where(np.logical_and(adjusted_data["Smoker"]!="Every day",adjusted_data["Heavy Drinker"]==9),"Unknown",adjusted_data["Heavy Smoker or Drinker"] )
adjusted_data["Heavy Smoker or Drinker"] = np.where(np.logical_and(adjusted_data["Smoker"]=="Unknown",adjusted_data["Heavy Drinker"]!=2),"Unknown",adjusted_data["Heavy Smoker or Drinker"] )

当我尝试运行pd_remove_condition时,我只是想删除列中"Unknown"的记录"Heavy Smoker or Drinker",即row = "Heavy Smoker or Drinker"conditions = ["Unknown"]

由于该功能在其他情况下正常工作,这让我认为问题在于创建["Heavy Smoker or Drinker"]上面的列。在创建它时,也许我不小心做了一个多维列?我是一个 Python 菜鸟,我有点不知道如何解决这个问题。感谢所有帮助!

亲切的问候,

C

编辑:

这是使用.to_csv 时创建的列的副本:

Heavy Smoker or Drinker
False
False
False
False
False
True
False
False
False
False
False
Unknown
False
False
False
False
False

我正在尝试锻炼为什么通过这种方式喂食pd_remove_condition会导致错误而不是删除"unknowns"

标签: pythonpandas

解决方案


推荐阅读