python - 使用熊猫从未命名或空白的列中删除行
问题描述
我有一个数据框 df,我想使用 pandas 从未命名或空白的列中删除一行。我想删除包含“id”的行
数据
a b c
date 21 22 23
id
aa 2 3 4
bb 1 2 3
cc 5 5 5
期望的
a b c
date 21 22 23
aa 2 3 4
bb 1 2 3
cc 5 5 5
正在做
df[df[""].str.contains("id")==False]
或者
df.drop(1)
但是,该操作没有执行,我没有得到想要的结果。我正在积极研究这个。任何建议表示赞赏
解决方案
使用dropna
:
>>> df.dropna(how='all', axis=0)
a b c
date 21.0 22.0 23.0
aa 2.0 3.0 4.0
bb 1.0 2.0 3.0
cc 5.0 5.0 5.0
更新
如果第一列不是索引而是具有空名称的真实列,也许你应该使用这个版本:
>>> df[df.loc[:, df.columns.str.len().astype(bool)].notna().any(axis=1)]
a b c
0 date 21.0 22.0 23.0
2 aa 2.0 3.0 4.0
3 bb 1.0 2.0 3.0
4 cc 5.0 5.0 5.0
或者更简单,如果您的未命名列是第一个:
>>> df[df.iloc[:, 1:].notna().any(axis=1)]
a b c
0 date 21.0 22.0 23.0
2 aa 2.0 3.0 4.0
3 bb 1.0 2.0 3.0
4 cc 5.0 5.0 5.0
推荐阅读
- android - 通过用户值给出的在sql数据库中查找记录的方法
- python - Django-image-cropping 在管理界面之外不起作用
- c# - 无法搜索 DataTable,因为添加后行值为空
- c# - System.Net.ServicePointManager.SecurityProtocol 正在使用中
- c# - 错误„未应用迁移。数据库已经是最新的“
- javascript - 使用 Array.includes() 代替 OR 链
- html - ag-grid 在单元格渲染器之上渲染
- php - 将 Lumen 应用程序部署为子域
- javascript - 为什么年份返回为 NaN?
- c# - 从 System.Threading.Tasks.Task 类型的方法写入返回值