python-3.x - 当所有特定 4 列的值在 pandas 中均为 NaN 时删除行
问题描述
我有一个 df 如下所示
东风:
ID Type Desc D_N D_A C_N C_A
1 Edu Education 3 100 NaN NaN
1 Bank In_Pay NaN NaN 8 900
1 Eat Food 4 200 NaN NaN
1 Edu Education NaN NaN NaN NaN
1 Bank NaN NaN NaN 4 700
1 Eat Food NaN NaN NaN NaN
2 Edu Education NaN NaN 1 100
2 Bank In_Pay NaN NaN 8 NaN
2 Eat Food 4 200 NaN NaN
3 Edu Education NaN NaN NaN NaN
3 Bank NaN 2 300 NaN NaN
3 Eat Food NaN NaN NaN NaN
关于df:
每当D_N
non-NaN D_A
应该是 non-NaN 时,同时C_N
应该C_A
是 NaN,反之亦然。
在上面的数据中,我想过滤任何D_N
,D_A
和非 NaN 的行C_N
C_A
预期输出:
ID Type Desc D_N D_A C_N C_A
1 Edu Education 3 100 NaN NaN
1 Bank In_Pay NaN NaN 8 900
1 Eat Food 4 200 NaN NaN
1 Bank NaN NaN NaN 4 700
2 Edu Education NaN NaN 1 100
2 Bank In_Pay NaN NaN 8 NaN
2 Eat Food 4 200 NaN NaN
3 Bank NaN 2 300 NaN NaN
解决方案
print(df.dropna(subset=["D_N", "D_A", "C_N", "C_A"], how="all"))
印刷:
ID Type Desc D_N D_A C_N C_A
0 1 Edu Education 3.0 100.0 NaN NaN
1 1 Bank In_Pay NaN NaN 8.0 900.0
2 1 Eat Food 4.0 200.0 NaN NaN
4 1 Bank NaN NaN NaN 4.0 700.0
6 2 Edu Education NaN NaN 1.0 100.0
7 2 Bank In_Pay NaN NaN 8.0 NaN
8 2 Eat Food 4.0 200.0 NaN NaN
10 3 Bank NaN 2.0 300.0 NaN NaN
推荐阅读
- wordpress - 将电子邮件和电话字段添加到 Woocommerce 分析订单报告
- django - 脚本运行 30 秒后出现 nginx 错误
- mule - 忽略 dwl 1.0 mule 3 中的无效或空日期字段
- git - GitHub PR 显示来自其他开发人员的大量不必要的提交
- winforms - WebView2用户原生NetForms App的分布:真的需要WebView2 Runtime吗?
- amazon-web-services - 更改 splunk 仪表板工作室的面板时间,而不考虑全局时间
- r - 为什么在 R 中运行 cv 或 repeatcv 代码 glm() 得到与我们没有交叉验证相同的输出?
- vb.net - VB.net Html 转换器错误没有改变?
- firebase-realtime-database - 在聊天应用程序中实现推送通知
- reactjs - Webpack 5 + Module Federation + React JS 在同一个屏幕上服务多个模块