我想在许多情况下删除行。下面是代码,但要花很多时间。
a=[]
for i in range(len(df)):
if df['col_1'][i] in ['a','b'] and (pd.isna(df['col_2'][i])==True or df['col_2'][i]=='c'):
a.append(i)
df.drop(a, inplace=True)
df.reset_index(inplace=True,drop=True)
答案 0 :(得分:2)
在invert
条件下使用boolean indexing
-这里isin
至~
,|
至&
,&
至{{ 1}},|
至isna
和notna
至==
:
!=
答案 1 :(得分:1)
尝试一下:
df = df.loc[~(df['col_1'].isin(['a','b']) & ((pd.isna(df['col_2'])==True) | (df['col_2']=='c')))]