Python 如何使用pandas计算错误百分比(groupby)?
嗨,我有一个数据框,里面有日期信息。我想计算CampainAction日期(此活动日期应早于今天的日期。如果晚于今天的日期,则错误!!)和按国家分组的错误率 有人能告诉我如何使用lambda或任何函数计算错误百分比吗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
感谢您的帮助。您可以将日期转换为
日期时间
,然后创建一个布尔列,指示它是否为错误。然后只需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