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

Python 如何使用pandas计算错误百分比(groupby)?,python,pandas,datetime,lambda,percentage,Python,Pandas,Datetime,Lambda,Percentage,嗨,我有一个数据框,里面有日期信息。我想计算CampainAction日期(此活动日期应早于今天的日期。如果晚于今天的日期,则错误!!)和按国家分组的错误率 有人能告诉我如何使用lambda或任何函数计算错误百分比吗 感谢您的帮助。您可以将日期转换为日期时间,然后创建一个布尔列,指示它是否为错误。然后只需groupby+mean即可获得百分比 import pandas as pd # Create datetimes. df['CampaignAction Date'] = pd.to_da

嗨,我有一个数据框,里面有日期信息。我想计算CampainAction日期(此活动日期应早于今天的日期。如果晚于今天的日期,则错误!!)和按国家分组的错误率

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


感谢您的帮助。

您可以将日期转换为
日期时间
,然后创建一个布尔列,指示它是否为错误。然后只需
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 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

您想如何处理没有日期的列?假设它们总是有效的,或者无效的,或者从错误率中排除它们?我相信排除那些缺少的值…非常感谢!!有帮助
  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