KeyError: Not Found in Axis during pd.DataFrame.drop()

KeyError: Not Found in Axis during pd.DataFrame.drop()

我正在玩 Accidental Drug Related Deaths 2012-2018 数据集。我正在使用以下 drugs 数组:

array(['Heroin', 'Cocaine', 'Fentanyl', 'FentanylAnalogue', 'Oxycodone',
       'Oxymorphone', 'Ethanol', 'Hydrocodone', 'Benzodiazepine',
       'Methadone', 'Amphet', 'Tramad', 'Morphine_NotHeroin',
       'Hydromorphone', 'Other', 'OpiateNOS', 'AnyOpioid'], dtype=object)

数据集带有这些预热编码。我正在尝试将它们转换为单列,然后删除原始功能:

deaths['DrugDeath'] = deaths[drugs].idxmax(1)
deaths = deaths.drop(drugs)

当我这样做时,出现以下错误:

KeyError: "['Heroin' 'Cocaine' 'Fentanyl' 'FentanylAnalogue' 'Oxycodone'\n 'Oxymorphone' 
'Ethanol' 'Hydrocodone' 'Benzodiazepine' 'Methadone'\n 'Amphet' 'Tramad' 'Morphine_NotHeroin'
 'Hydromorphone' 'Other'\n 'OpiateNOS' 'AnyOpioid'] not found in axis"

让我感到困惑的不仅是错误,而且这不是我输入的格式。我放了一个数组。现在,根据 pd.DataFrame.drop() documentation,我需要 "single label or list-like." 不确定 "list-like" 的含义或数组是否符合条件,我决定尝试 deaths = deaths.drop(drugs.tolist()),但无济于事。

这是什么错误,它是什么意思?为什么它会响应我未使用的输入结构?我该如何正确实施?

如果不查看您的完整代码、您的 deaths df 是什么样子等,我认为我无法完全理解这一点,但也许可以尝试:

deaths = deaths.drop(columns=list(drugs))