pandas - 从整个数据框中删除特定的字符串值而不指定列或行
问题描述
我有一个数据框,其中包含一些值为“?”的单元格。现在,每当我尝试使用多信息指标时,此值都会导致错误(“无法将字符串转换为浮点数:“?”)。
我已经通过简单地使用找到了解决方案:
df.replace("?",0,inplace=True)
它奏效了。但是我想知道如果其中一个单元格的值为“?”,我是否想删除整行,我该怎么做?
请注意,我没有包含此值的列名。它分布在不同的列中,这就是我不能使用的原因df.drop
。
解决方案
您可以检查每个单元格是否等于"?"
,然后在任何一个单元格中包含该字符的行上获取一个布尔系列。然后获取给出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)
推荐阅读
- python - docker 和 postgreSQL / Mac OS / Python 的对等身份验证失败
- sql - 如何计算不同的值和日期小于同一行
- matlab - 使用 MATLAB 绘制实时数据
- python - 使用 plotly 为 3D 散点图设置悬停距离
- mysql - 如何使用 docker 镜像创建用户和数据库
- node.js - 为什么我的流式 mp3 文件比 S3 存储桶中的原始文件更长/更大?
- android - 将文本编辑到 Spinner - Android Studio
- c# - 从当前用户查询 BranchId
- python - 将 await 与 fastapi 一起使用
- python - Geodjango + PostGIS。以平方米为单位的聚合多边形面积