如何使用pandas计算误差百分比(groupby)?

How to use pandas calculate error percentage (groupby)?

嗨,我有一个包含日期信息的数据框。我想计算CampainAction Date的错误率(这个Campaign日期应该早于今天的日期,晚于今天的日期就是错误的!!)和groupby的国家。

谁能告诉我如何使用 lambda 或任何 Pandas 函数计算错误百分比?

感谢您的帮助。

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