python - 如何选择只有一个元素非 nan 值的行,其余的都是 NaN?
问题描述
我正在尝试从数据框中提取只有元素 no-Nan 的行,其余的为 None。例如 :
A B C
0 NaN NaN 2
1 NaN 3 NaN
2 NaN 4 5
3 NaN NaN NaN
对于这个数据框示例,它应该返回第一行。我尝试了这段代码,但它不起作用:
df_table.isnull(df_table[cols]).all(axis=1)
谢谢!
解决方案
使用sum
代替all
:
df.loc[df.notnull().sum(1)==1]
要获取非 nan 元素,您可以使用,例如max
:
df.loc[df.notnull().sum(1)==1].max(1)
或者
df.loc[df.notnull().sum(1)==1].ffill(1).iloc[:,-1]
这使:
0 2.0
1 3.0
dtype: float64
推荐阅读
- javascript - 如何使用 node.js express js 和 oracledb 创建 rest api 以更新数据库
- php - Laravel API 路由在 Nginx 上获取 404
- javascript - hls 视频格式不适用于 Angular 7
- swift - 在场景之间移动时从 SpriteKit 内部丢失对 GameViewController 的引用 - 想要在 SKScene 和 UITableView 之间移动
- javascript - useEffect 用于设置输入值时抛出错误
- reactjs - 如何隔离 React 测试库中的测试?
- react-native - 如何在 React Native 中将视图相互叠加以实现与 Android 原生中的 FrameLayout 相同的效果
- java - 如何获取暴露的肥皂端点
- c++ - Opencv 不适用于套接字连接
- c# - 如何使用参数使用官方 Neo4j .Net 驱动程序更新节点属性