繁体   English   中英

在 Python 和 Pandas 中删除具有特定值的行

[英]Delete rows with a certain value in Python and Pandas

我想删除具有特定值的行。 我要删除的值有一个“+” ,如下所示:

合作+并行
被动+亲社会

我的数据集包含 900000 行,大约 2000 个值包含我提到的问题。

我想要这样的代码:

df = df[df.columnname != '+']

以上是针对一列的(效果不佳),但我也想要一个针对整个数据集的示例。

我更喜欢 Pandas 中的解决方案。

非常感谢

使用Series.str.contains与倒置面膜~逃逸+ ,因为有特殊的正则表达式字符DataFrame.apply供选择的全部对象列DataFrame.select_dtypesDataFrame.any测试至少一个匹配:

df1 = df[~df.select_dtypes(object).apply(lambda x: x.str.contains('\+')).any(axis=1)]

或使用regex=False

df1 = df[~df.select_dtypes(object).apply(lambda x: x.str.contains('\+', regex=False)).any(axis=1)]
df = df[~df['columnname'].str.contains('+', regex=False)]

文档在这里: https : //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.contains.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM