鱼C论坛

 找回密码
 立即注册
查看: 939|回复: 5

[已解决]python数据清洗

[复制链接]
发表于 2022-3-30 09:11:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
怎么用pandas将csv表格中多列同时为0的行删除?
        一        二        三        四        五
0        1        1        1        1        1
1        2        2        2        2        2
2        7        6        5        8        0
3        6        54        6        0        0
4        8        65        3        0        9
5        7        6        4        3        8
6        8        8        5        0        8
7        8        5        7        0        0

就比如这个表,需要将第四,五列中的值同时为0时,将其所在行删除。本表中就删除第4,8行。
最佳答案
2022-3-30 20:29:49
2022@lif 发表于 2022-3-30 16:02
这样的话,如果某一行原本别的列就有空值的话就会误删了

哦,别的列还可能有空值呀,这个倒是没考虑到。。惭愧~

那就这样吧,只根据四五列进行 多条件的过滤: df[~ ((df.d == 0) & (df.e == 0))]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-30 11:14:49 | 显示全部楼层
提供个思路,对于4、5列中,对应行值进行相加,=0删就行了
具体代码还得写一下,这个在excel中就经常这么干
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-3-30 15:33:55 | 显示全部楼层
最简单的方法,我想应该是:
1. 把0看做(替换为)NaN缺失值,如 df_n = df.replace(0, pd.NA),
2. 然后,用 df_n.dropna(thresh=4).fillna(0)     —— 搞定了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-30 16:02:52 | 显示全部楼层
阿奇_o 发表于 2022-3-30 15:33
最简单的方法,我想应该是:
1. 把0看做(替换为)NaN缺失值,如 df_n = df.replace(0, pd.NA),
2. 然后 ...

这样的话,如果某一行原本别的列就有空值的话就会误删了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-30 20:29:49 | 显示全部楼层    本楼为最佳答案   
2022@lif 发表于 2022-3-30 16:02
这样的话,如果某一行原本别的列就有空值的话就会误删了

哦,别的列还可能有空值呀,这个倒是没考虑到。。惭愧~

那就这样吧,只根据四五列进行 多条件的过滤: df[~ ((df.d == 0) & (df.e == 0))]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-31 08:47:16 | 显示全部楼层
阿奇_o 发表于 2022-3-30 20:29
哦,别的列还可能有空值呀,这个倒是没考虑到。。惭愧~

那就这样吧,只根据四五列进行 多条件的过滤: ...

~的作用是什么?删除匹配的行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 21:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表