首页 > 解决方案 > 从整个数据框中删除特定的字符串值而不指定列或行

问题描述

我有一个数据框,其中包含一些值为“?”的单元格。现在,每当我尝试使用多信息指标时,此值都会导致错误(“无法将字符串转换为浮点数:“?”)。

我已经通过简单地使用找到了解决方案:

df.replace("?",0,inplace=True)

它奏效了。但是我想知道如果其中一个单元格的值为“?”,我是否想删除整行,我该怎么做?

请注意,我没有包含此值的列名。它分布在不同的列中,这就是我不能使用的原因df.drop

标签: pandasdataframe

解决方案


您可以检查每个单元格是否等于"?",然后在任何一个单元格中包含该字符的行上获取一个布尔系列。然后获取给出True并删除它们的行的索引:

has_ques_mark = df.eq("?").any(axis=1)            # a boolean series
inds = has_ques_mark[has_ques_mark].index         # row indices where above is True

new_df = df.drop(inds)

推荐阅读