python - 删除所有列中所有零元素的行,异常地在 pandas DF 中留下一个非零列
问题描述
我有一个有 200 万行 *10 列的 pandas Df。我想删除所有列中的所有零元素,除了具有非零元素的单列。
前任。我的 Df 喜欢:
Índex Time a b c d e
0 1 0 0 0 0 0
1 2 1 2 0 0 0
2 3 0 0 0 0 0
3 4 5 0 0 0 0
4 5 0 0 0 0 0
5 6 7 0 0 0 0
我需要什么:
Índex Time a b c d e
0 2 1 2 0 0 0
1 4 5 0 0 0 0
2 6 7 0 0 0 0
我的要求:
要求 1:
离开第一列(时间),它应该检查每一行中的零元素。如果所有列值都为零,则删除该特定行。
要求 2:
最后我希望我的索引能够正确更新
我尝试了什么:
我一直在看这个链接。
我理解使用的逻辑,但我无法根据我的要求重现结果。
我希望有一个简单的方法来做手术......
解决方案
用于iloc
选择所有没有 first 的列,comapre 用于不等于 by并测试每行ne
至少一个by for filter by , last :True
any
boolean indexing
reset_index
df = df[df.iloc[:, 1:].ne(0).any(axis=1)].reset_index(drop=True)
替代删除列Time
:
df = df[df.drop('Time', axis=1).ne(0).any(axis=1)].reset_index(drop=True)
print (df)
Time a b c d e
0 2 1 2 0 0 0
1 4 5 0 0 0 0
2 6 7 0 0 0 0
推荐阅读
- javascript - 亚像素滚动问题,无法在 Chrome 69 上正确设置 scrollTop
- python - 如何将 Jupyter notebook 中的 tar/zip 文件作为依赖包访问
- android - 如果 Android 应用未发布,老用户会获得更新吗?
- azure - Web App 前面的 Azure WAF 更改主机名...仍然有问题
- powershell - 如何从 powershell 作业中获取实时数据(输出、进度)?
- python - 当子进程返回错误时,python中的奇怪挂起
- javascript - 点击按钮调用函数
- r - r 中的聚合正在删除表中的 0 个计数。如何让它显示?
- facebook - 如何使用 facebook 发送对话框但发送消息而不是链接
- python - str.replace() python程序加密问题