【问题标题】:Deleting a variable in pandas from a df从 df 中删除 pandas 中的变量
【发布时间】:2023-01-09 02:59:23
【问题描述】:
我在尝试从数据框中删除变量时遇到问题。我有第一行代码使用两个条件对 routine_tasks 进行分类,但是当我使用变量删除时,它会删除 df 中的所有内容。我正在尝试做的事情的背景是从维护板上删除例行任务。
routine_tasks = mboard.loc[((mboard['Down Date']== '2021-06-20')&(mboard['Category']== 'Maintaince'))]
Down = mboard.drop(routine_tasks, axis = 1)
我试过使用不同的轴,我查找了不同的 drop 用途。
【问题讨论】:
标签:
python
pandas
dataframe
【解决方案1】:
您需要将索引传递给drop:
mask = ((mboard['Down Date'] == '2021-06-20')
&(mboard['Category'] == 'Maintaince'))
routine_tasks = mboard.loc[mask]
Down = mboard.drop(mboard.index[routine_tasks])
或者,使用boolean indexing:
mask = ((mboard['Down Date'] == '2021-06-20')
&(mboard['Category'] == 'Maintaince'))
routine_tasks = mboard.loc[mask]
Down = mboard.loc[~mask]
【解决方案2】:
要删除 mboard 中包含在例程任务中的行,您可以使用 ~ 运算符来否定由 'isin' 方法生成的布尔掩码:
Down = mboard.drop(mboard[mboard.isin(routine_tasks)].index, axis=0)
这将删除 mboard 中包含在 routine_tasks 中的行。
或者,您也可以使用“routine_tasks”的索引属性从“mboard”中删除行:
Down = mboard.drop(routine_tasks.index, axis=0)