考虑到以下情况,我很难理解这里的机制。
我有一个数据帧
从读取。csv
:
a1 b1 c1
1 aa bb cc
2 ab ba ca
df.drop(df['a1'].str.contains('aa',case = False))
我想删除列a1中包含“aa”的所有行
我相信我已经尝试了这里的一切,但仍然得到了:
ValueError:标签[False False False...False False]轴中不包含
是的,我也试过
skipinitialspace=True
axis=1
任何帮助都将不胜感激,谢谢。
str.contains
返回掩码:
df['a1'].str.contains('aa',case = False)
1 True
2 False
Name: a1, dtype: bool
但是,drop
接受索引标签,而不是布尔掩码。如果打开上的“帮助”下拉列表
,您可能会看到以下第一手信息:
?df.drop
Signature: df.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
Docstring:
Return new object with labels in requested axis removed.
Parameters
----------
labels : single label or list-like
Index or column labels to drop.
您可以从掩码中找出索引标签,并将其传递给删除
idx = df.index[df['a1'].str.contains('aa')]
df.drop(idx)
a1 b1 c1
2 ab ba ca
但是,这风太大了,所以我建议只使用pandaic方法,根据条件删除行,布尔索引:
df[~df['a1'].str.contains('aa')]
a1 b1 c1
2 ab ba ca
如果有人想删除列表中包含字符串的行
df = df[~df['a1'].str.contains('|'.join(my_list))]
确保去除白色空间。归功于https://stackoverflow.com/a/45681254/9500464
问题内容: 我对此有一个类似的问题:Pandas DataFrame:从一列中的字符串中删除不需要的部分 。 所以我用了: 大多数项目以“ PPI /”开头,但并非全部。似乎当没有’PPI /’后缀的项目遇到此错误时: AttributeError:“ float”对象没有属性“ lstrip” 我在这里想念什么吗? 问题答案: 使用replace: 或string.replace:
我有一个熊猫数据帧,其中有一列文件列表 我想从中的每个条目中删除文件扩展名。如何完成此操作? 我尝试了: 但是当我用<code>df查看列条目时。head(),没有任何变化。 如何做到这一点?
问题内容: 我有以下数据框 基本上我可以如下过滤行 我可以如下所示删除/删除一行 但是我想根据条件删除一定数量的行,我该怎么做? 问题答案: 最好的是但需要反转条件-使所有值相等且更高,如下所示: 与功能相同: 另一种可能的解决方案是通过以下方法反转掩码:
问题内容: 我有一个类似于以下内容的数据框: 我希望输出为以下格式: 想要从“名称”列中删除所有数字。 我最近来的是使用以下代码在 单元 级别进行的: 任何想法如何在 系列 / 数据框 级别上以更好的方式 实现 。 问题答案: 您可以结合使用正则表达式将str.replace应用于列: 输出: 在正则表达式中代表“任何数字”,代表“一个或多个”。 因此,其含义是:“将字符串中所有出现的数字全部替换
我想从字符串类型的熊猫列中删除小数点 Df 我正试着去掉那一栏的小数 df['Net Sales']已经是字符串类型。 我尝试如下: < code>df['净销售额'] = df['净销售额']。astype(str)。替换(' \.0 ','',regex=True) 但我得到的错误如下: < code>ValueError:基数为10的int()的文本无效:“1567.55” 谢谢。
问题内容: 我有一个熊猫DataFrame,里面有很多值。 如何删除这样的列? 我试图这样做: 有更优雅的方法吗? 问题答案: 这是保留每列中小于或等于指定数量的nan的列的另一种选择: 在我的测试中,这似乎比李建勋在我测试的案例中建议的放置列方法要快一些: