嗨,我有一个包含日期信息的数据框。我想计算CampainAction日期的错误率(此广告系列日期应早于今天的日期。如果晚于今天的日期,则错误!!)并按国家/地区分组。
有人可以告诉我如何使用lambda或任何Pandas函数计算错误百分比吗?
感谢您的帮助。
答案 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