pandas 当删除基于str.contains的行时,如何在单元格为空的行中保留

pcww981p  于 2023-03-28  发布在  其他
关注(0)|答案(1)|浏览(139)

我试图删除基于某些列中的某些文本的行,但这些列也包含大量空白,我不想删除这些行。
我有下面的代码,但它不工作。

DF=DF[~DF['CONTRACT TERM SET NAME'].str.endswith("Tier 2")==True]
DF=DF[~DF['REBATE TERM SET NAME'].str.endswith("Tier 2")==True]
DF=DF[~DF['REBATE TERM SET NAME'].str.contains(" FOP")==True]
DF=DF[~DF['REBATE TERM SET NAME'].str.contains("Tier 3")==True]
DF=DF[~DF['CONTRACT TERM SET NAME'].str.contains("Healthcare Only")==True]
DF=DF[~DF['CONTRACT TERM SET NAME'].str.contains("COCA COLA NORTH AMERICA")==True]
DF=DF[DF['DISTRIBUTOR DIN'].str.contains("NaN")==False]

我也试过下面的代码也不起作用

DF=DF[~DF['CONTRACT TERM SET NAME'].str.endswith("Tier 2",na=False)]

这两个都删除了我需要的额外的20 k行,只是因为“合同术语集名称”或“回扣术语集名称”中的单元格为空
谢谢你的帮助!

fd3cxomn

fd3cxomn1#

尝试使用isna()函数来保留缺失值。
如果你想保持你一直使用的语法,这里有一个可能的解决方案:

DF = DF[DF['CONTRACT TERM SET NAME'].isna() | ~DF['CONTRACT TERM SET NAME'].str.endswith("Tier 2")]

相关问题