【问题标题】: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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-02
        • 2022-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-21
        • 2023-02-01
        相关资源
        最近更新 更多