如何使用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
嗨,我有一个包含日期信息的数据框。我想计算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