如何删除同时包含text.和.sta的DataFrame列?
解决方法
很简单,你只需要在列表推导式里用and把两个判断条件结合起来就行!
修改后的代码如下:
df.drop(columns=[col for col in df.columns if 'text.' in str(col) and '.sta' in str(col)], inplace=True)
逻辑说明
- 列表推导式里的
'text.' in str(col) and '.sta' in str(col)会精准筛选出同时包含text.和.sta的列名——不管这两个子串中间夹了什么内容,像你举例的text.Corolary.sub.ramdon.sta、text.paint.ss1b.docto.not.sta都会被匹配到。 - 保留
str(col)是为了处理极端情况:如果你的DataFrame列名不是字符串类型,转成字符串后判断逻辑依然能正常工作。
如果你偏好避免原地修改(更符合Python的不可变数据习惯),也可以这么写:
df = df.drop(columns=[col for col in df.columns if 'text.' in str(col) and '.sta' in str(col)])
内容的提问来源于stack exchange,提问作者srgam
相关产品推荐
相关产品推荐

