python - 删除具有一定数量 NA 的行
问题描述
我有一个数据框,在我完成转置后看起来像这样:
step1 step2 step3 step4 ..... stepn-1 stepn
session_id
1 page_id page_id NA NA NA NA
2 page_id NA NA NA NA NA
3 page_id page_id page_id page_id page_id page_id
4 page_id page_id page_id NA NA NA
对于上下文,这page_id
是一些 url 子字符串,步骤指示整个跟踪网页的用户路径
有些人的步骤非常大,可能有 1000 多页,我想这对于平均水平来说是非常非常罕见的
我想要做的是找到每个会话的平均步数(非 NA 步数)
所以在上面的例子中,如果我们排除我们定义为异常值的第 3 页,平均步数是 (2+1+4+3)/4 = 10/4
一旦我有了一个平均值,我就会知道我可以排除哪些行,这样表格就会变得更易于管理。
所以总的来说
查找平均步数(非 nas)并使用此数字删除包含超过平均行数的行
解决方案
notna
您可以使用+计算非 NaN 的数量sum
并获得mean
. 最后,dropna
将此平均值用作阈值:
avg = df.notna().sum(axis=1).mean()
df.dropna(thresh=avg)
输出:
step1 step2 step3 step4 stepn-1 stepn
session_id
3 page_id page_id page_id page_id page_id page_id
4 page_id page_id page_id NaN NaN NaN
推荐阅读
- php - 显示当前用户帖子的 WordPress 自定义页面主题
- java - 在底部导航视图上打开时如何放置导航视图?
- django - 未从 Django 连接到邮件服务器时如何检测错误?
- css - 如何用css隐藏li里面的sub ul
- java - 嵌套@RestController(内部类) - 任何副作用?
- c# - 在gridview中找不到嵌入式控件
- javascript - 如何在 Three.js 的画布上不实际渲染场景的情况下获取场景的像素数据?
- ios - Drawing rectangles using the CGPoint coordinate system - SWIFT
- node.js - ReferenceError: ImageData is not defined at MathBackendCPU.fromPixels when pass image into the function
- python - Pandas 中字典的字典列表