Python 在忽略非数值的情况下忽略数据帧groupby sum
我有一个如下所示的数据帧。“延迟”列既有数字字符又有“NA”字符,这使得groupby变得复杂Python 在忽略非数值的情况下忽略数据帧groupby sum,python,python-3.x,pandas,dataframe,pandas-groupby,Python,Python 3.x,Pandas,Dataframe,Pandas Groupby,我有一个如下所示的数据帧。“延迟”列既有数字字符又有“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
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
ab.fxx.in 6
kddo.fxx.in 8
在使用groupby之前,可以将延迟序列转换为数字
使用errors='concure'可确保在转换不成功的情况下具有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