python - Pandas 数据框分组求和,同时忽略非数值
问题描述
我有一个如下所示的数据框。'LATENCY' 列同时包含数字和 'NA' 字符,这使得 groupby() 变得复杂。
DEVICE START_PRICE LATENCY
0 ab.fxx.in 500 NA
1 ab.fxx.in 500 1
2 ab.fxx.in 500 5
3 kddo.fxx.in 500 NA
4 kddo.fxx.in 500 5
5 kddo.fxx.in 533 3
6 kddo.fxx.in 533 NA
我想通过绕过“NA”值将“DEVICE”值分组为“LATENCY”的总和。我应该得到如下输出。
DEVICE
ab.fxx.in 6
kddo.fxx.in 8
解决方案
您可以LATENCY
在使用之前将系列转换为数字groupby
。
使用errors='coerce'
可确保您具有NaN
转换不成功的值。当您使用 时groupby.sum
,pandas
通过忽略它们来优雅地处理它们。
df['LATENCY'] = pd.to_numeric(df['LATENCY'], errors='coerce')
res = df.groupby('DEVICE')['LATENCY'].sum().reset_index()
print(res)
DEVICE LATENCY
0 ab.fxx.in 6.0
1 kddo.fxx.in 8.0
推荐阅读
- node.js - 如何在 Gatsby 中将 http 重定向到 https?
- javascript - 在 setState 之后反应原生不重新渲染
- python-3.x - 如何使用forloop并排绘制图表
- reactjs - 像“useLocation”这样的反应路由器钩子的存根不起作用
- angular - 角度文件上传传递图像作为[对象文件]
- android-studio - 在将 jsoup 与 android studio 一起使用时,我在更高的 android api 版本中收到“太多重定向错误”
- php - 从数据库查询到字符串的数组 - 非常具体的问题
- python-3.x - Using dataframe operations, determine how long, in days a given name in the dataset lived
- php - 如果您在 PHP 中退出,如何显示?
- android - 尝试从 Firebase 下载时应用崩溃