Pandas - 删除函数

Pandas - drop function

我想根据特定列的值在列表中的条件从数据框中删除行。如果不是这种情况,我希望删除该行。

你有什么建议吗?提前致谢

例如,如果列 'C' 中的值不在列表 l 内,我想删除整行

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(20, 4)), columns=list('ABCD'))

l = [4, 6, 23, 45, 79]
df = df[df.apply(lambda x: any(x.isin(l)), axis=1)]

如果只有一列必须

如果只有 C:

df[df.apply(lambda x: x["C"] in l, axis=1)]

或者,如果所有列:

df = df[df.apply(lambda x: all(x.isin(l)), axis=1)]

你可以这样试试:

df = pd.DataFrame([[1, 2], [3, 4], [5, 6]], columns=["a", "b"])

df[(df.a.isin([3]) == False)]

这只会将那些行留在数据框中,其 a-value 不在给 isin 的列表中,即它不是 3.