<p>我知道已经有几个答案了,但如果可以的话,我想加入我的答案。我认为<a href="https://stackoverflow.com/a/67776571/11497988">SeaBean's solution</a>也是正确的,我喜欢这一点,与<a href="https://stackoverflow.com/a/67775891/11497988">other proposed solutio</a>n不同,您不必指定哪些列具有列表</p>
<p>我不能像SeaBean那样解释我的解决方案,因为这是我不久前遇到的东西,我诚实地用试错法提出了它</p>
<pre><code>d = {'A':['string1','string2','string3'],
'B':['string4','string5','string6'],
'C':[['string7','string10'],['string8'],['string9']],
'D':[['string11','string12'],['string13'],['string14']]
'E':[['string15'],['string16'],['string17']]}
df = pd.DataFrame(data=d);
res = df[~df.stack().explode().isin(to_delete).any(level=0)]
</code></pre>
<p>我试着用更多的项目来计时,似乎我的解决方案稍微好一点</p>
<pre><code>d = {'A':['string1','string2','string3']*10000, 'B':['string4','string5','string6']*10000, 'C':[['string7','string10'],['string8'],['string9']]*10000,'D':[['string11','string12'],['string13'],['string14']]*10000,'E':[['string15'],['string16'],['string17']]*10000}
df = pd.DataFrame(data=d);
to_delete = ['string7', 'string9', 'string17']
start = time.time()
print(df[~df.stack().explode().isin(to_delete).any(level=0)])
end = time.time()
print(end - start)
start = time.time()
print(df.loc[df.apply(pd.Series.explode).isin(to_delete).groupby(level=0).sum().sum(axis=1).eq(0)])
end = time.time()
print(end - start)
</code></pre>
<p>输出:</p>
<pre><code> A B C D E
1 string2 string5 [string8] [string13] [string16]
4 string2 string5 [string8] [string13] [string16]
7 string2 string5 [string8] [string13] [string16]
10 string2 string5 [string8] [string13] [string16]
13 string2 string5 [string8] [string13] [string16]
... ... ... ... ... ...
29986 string2 string5 [string8] [string13] [string16]
29989 string2 string5 [string8] [string13] [string16]
29992 string2 string5 [string8] [string13] [string16]
29995 string2 string5 [string8] [string13] [string16]
29998 string2 string5 [string8] [string13] [string16]
[10000 rows x 5 columns]
0.08804535865783691
A B C D E
1 string2 string5 [string8] [string13] [string16]
4 string2 string5 [string8] [string13] [string16]
7 string2 string5 [string8] [string13] [string16]
10 string2 string5 [string8] [string13] [string16]
13 string2 string5 [string8] [string13] [string16]
... ... ... ... ... ...
29986 string2 string5 [string8] [string13] [string16]
29989 string2 string5 [string8] [string13] [string16]
29992 string2 string5 [string8] [string13] [string16]
29995 string2 string5 [string8] [string13] [string16]
29998 string2 string5 [string8] [string13] [string16]
[10000 rows x 5 columns]
0.11187744140625
</code></pre>