Pandas dataframe groupby sum, игнорируя нечисловые значения - PullRequest
0 голосов
/ 02 июня 2018

У меня есть датафрейм, как показано ниже.Столбец «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

Я хотел сгруппировать фрейм данных по значению «DEVICE» в сумму «LATENCY» - пов обход значений «NA».Я должен получить вывод, как показано ниже.

DEVICE       
ab.fxx.in      6
kddo.fxx.in    8

1 Ответ

0 голосов
/ 02 июня 2018

Вы можете преобразовать серию 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...