Pandas dataframe groupby sum,同时忽略非数值

2024-10-02 16:28:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像下面这样的数据帧。“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”的总和。我应该得到如下输出。在

^{pr2}$

Tags: 数据inabdevice数字字符startprice
1条回答
网友
1楼 · 发布于 2024-10-02 16:28:10

在使用groupby之前,可以将LATENCY系列转换为数字。在

使用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

相关问题 更多 >