Python 使用for循环删除数据帧行

Python 使用for循环删除数据帧行,python,dataframe,drop,Python,Dataframe,Drop,假设我有一个包含错误用户的列表 wrong_users = [1,5,8,9,10] 我想使用此列表从包含所有用户的列的数据drame df_users中删除这些用户 我尝试使用for循环: for x in wrong_users: if x == df_users['user']: df_users.drop([x]) 但是我得到了以下错误:级数的真值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()你不需要循环,试试

假设我有一个包含错误用户的列表

wrong_users = [1,5,8,9,10]
我想使用此列表从包含所有用户的列的数据drame df_users中删除这些用户

我尝试使用for循环:

for x in wrong_users:
    if x == df_users['user']:
        df_users.drop([x])

但是我得到了以下错误:级数的真值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()

你不需要循环,试试这个

wrong_users =  [1,5,8,9,10]

df_users = df_users[~df_users['users'].isin(wrong_users)].reindex()

谢谢,它起作用了,但我想知道用于的“~”在哪里?波浪号(~)是一个位补码运算符,它在这里用于将df_用户返回的值['users'。isin(错误的_用户)从True转换为False,反之亦然。