我要删除包含所需字符串的所有行,
假设我有以下数据帧:
A B C
1 a x
w g n
3 l p
j p v
我想删除所有包含字符串p
的行。我已经搜索了它,但大多数答案是基于列名称,在我的情况下,我不会知道列它可以存在于任何列中。
输出数据帧应为
A B C
1 a x
w g n
对于筛选字符串:
df = df[(df != 'p').all(axis=1)]
不相等的比较:
print ((df != 'p'))
A B C
0 True True True
1 True True True
2 True True False
3 True False True
并测试每行的所有True
s:
print ((df != 'p').all(axis=1))
0 True
1 True
2 False
3 False
dtype: bool
或:
df = df[~(df == 'p').any(axis=1)]
测试相等:
print ((df == 'p'))
A B C
0 False False False
1 False False False
2 False False True
3 False True False
每行至少测试一个True
:
print ((df == 'p').any(axis=1))
0 False
1 False
2 True
3 True
dtype: bool
反转布尔掩码:
print (~(df == 'p').any(axis=1))
0 True
1 True
2 False
3 False
dtype: bool
对于过滤子串,使用包含
和应用
:
df = df[~df.apply(lambda x: x.astype(str).str.contains('p')).any(axis=1)]
或:
df = df[~df.stack().astype(str).str.contains('p').unstack().any(axis=1)]
print (df)
A B C
0 1 a x
1 w g n
问题内容: 我对此有一个类似的问题:Pandas DataFrame:从一列中的字符串中删除不需要的部分 。 所以我用了: 大多数项目以“ PPI /”开头,但并非全部。似乎当没有’PPI /’后缀的项目遇到此错误时: AttributeError:“ float”对象没有属性“ lstrip” 我在这里想念什么吗? 问题答案: 使用replace: 或string.replace:
问题内容: 我正在尝试从文本文件中读取文本,读取行,删除包含特定字符串的行(在这种情况下为“坏”和“顽皮”)。我写的代码是这样的: 我这样写,但没有成功。 重要的一件事是,如果文本的内容是这样的: 我不希望输出有空行。所以不喜欢: 但是像这样: 我应该从上面的代码中编辑什么? 问题答案: 您可以像这样使代码更简单,更易读 使用上下文管理器和任何。
问题内容: 这个问题已经在这里有了答案 : 在熊猫中的DataFrame上搜索“不包含” (6个答案) 去年关闭。 我在python中有一个非常大的数据框,我想在特定列中删除所有具有特定字符串的行。 例如,我想在数据框的列C中删除所有具有字符串“ XYZ”作为子字符串的行。 可以使用.drop()方法以一种有效的方式来实现吗? 问题答案: pandas具有向量化的字符串操作,因此您可以过滤掉包含不
我在python中有一个非常大的数据帧,我想把所有具有特定字符串的行放到特定列中。 例如,我想删除所有在数据帧的C列中有字符串“XYZ”作为子字符串的行。 这可以通过使用有效的方式实现。drop()方法?
问题内容: 我有一个类似于以下内容的数据框: 我希望输出为以下格式: 想要从“名称”列中删除所有数字。 我最近来的是使用以下代码在 单元 级别进行的: 任何想法如何在 系列 / 数据框 级别上以更好的方式 实现 。 问题答案: 您可以结合使用正则表达式将str.replace应用于列: 输出: 在正则表达式中代表“任何数字”,代表“一个或多个”。 因此,其含义是:“将字符串中所有出现的数字全部替换
我有一个熊猫数据帧,其中有一列文件列表 我想从中的每个条目中删除文件扩展名。如何完成此操作? 我尝试了: 但是当我用<code>df查看列条目时。head(),没有任何变化。 如何做到这一点?