如何使用熊猫计算错误百分比(groupby)?

时间:2018-09-20 21:41:09

标签: python pandas datetime lambda percentage

enter image description here

嗨,我有一个包含日期信息的数据框。我想计算CampainAction日期的错误率(此广告系列日期应早于今天的日期。如果晚于今天的日期,则错误!!)并按国家/地区分组。

有人可以告诉我如何使用lambda或任何Pandas函数计算错误百分比吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以将日期转换为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