Как использовать панды рассчитать процент ошибок (по группам)? - PullRequest
0 голосов
/ 21 сентября 2018

enter image description here

Привет, у меня есть датафрейм с информацией о дате.Я хочу рассчитать частоту ошибок для даты CampainAction (эта дата кампании должна быть раньше, чем сегодняшняя дата. Если это позже текущей даты, это неправильно !!) и сгруппировать страну.

Может кто-нибудь сказать мне, как рассчитать процент ошибки%, используя лямбду или любую функцию Панд?

Спасибо за помощь.

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете преобразовать свои даты в datetime, а затем создать логический столбец, который указывает, является ли это ошибкой.Тогда просто groupby + mean, чтобы получить процент.

import pandas as pd

# Create datetimes.
df['CampaignAction Date'] = pd.to_datetime(df['CampaignAction Date'], errors='coerce')
df['Today'] = pd.to_datetime(df['Today'], errors='coerce')

# Create an Error column
mask = df['CampaignAction Date'].notnull()
df.loc[mask, 'Error_per'] = (df.loc[mask,'CampaignAction Date'] >= df.loc[mask, 'Today']).astype(float)

df.groupby('Country').Error_per.mean().reset_index()

Вывод: (для первых двух стран)

  Country  Error_per
0  Brazil        0.5
1   China        0.2

Вот некоторые примеры данных:

  Country CampaignAction Date      Today
0   China           5/20/2018  9/20/2018
1   China           6/30/2018  9/20/2018
2   China           1/30/2018  9/20/2018
3   China           3/30/2018  9/20/2018
4   China                      9/20/2018
5   China          10/31/2018  9/20/2018
6  Brazil           6/30/2018  9/20/2018
7  Brazil           5/21/2019  9/20/2018
...