因此 CM_satisfaction 列包含不同的值,例如完全不满意、有点满意和 pandas 中的 Fully_Satisfied

So there is CM_satisfaction coulmn that contains different values like Fully Dissatisfied,Somewhat Satisfied and Fully_Satisfied in pandas

因此 CM_satisfaction 列包含不同的值,例如完全不满意、比较满意和 pandas 中的 Fully_Satisfied。我需要 Fully_Satisfied 有多少选民。我发现使用

Fully_Satisfied=survey[survey["CM_satisfaction"] == "Fully_Satisfied"]

接下来,我需要找出样本中每天有多少选民 Fully_Satisfied collection.I 也发现

day-wise=only_date_and_cm.groupby("collection_date").count()

我得到的结果是

collection_date CM_satisfaction

2020-08-24 146

2020-08-25 95

2020-08-26 59

2020-08-27 54

2020-08-28 92

2020-08-29 73

2020-08-30 65

2020-08-31 62

2020-09-01 75

现在是主要部分 对于样本收集的每一天,确定对 CM 的表现完全满意的受访者的比例。因此,如果第 1 天总共有 1000 个样本,其中 300 个表示完全满意,那么我们当天的答案就是 0.3。

我还查到了每天的总票数

day_wise_vote=survey.collection_date.value_counts()
day_wise_vote

2020-08-24 1479

2020-08-25 998

2020-08-28 761

2020-08-27 665

2020-08-29 620

2020-09-01 607

2020-08-26 598

2020-08-30 582

2020-08-31 557

现在如何找到对 CM day wise 的表现完全满意的受访者比例?

我想你可以简单地做:

day_wise_proportion = day_wise.astype(float) / day_wise_vote

这个想法是,当您将 pandas 系列除以另一个系列(具有相同的长度和索引)时,python 将逐行划分值。


看起来您还创建了许多中间数据帧。 你可以这样想,这样会更快更清楚:

survey['Fully_Satisfied'] = (survey["CM_satisfaction"] == "Fully_Satisfied").astype(float)
day_wise = survey.groupby("collection_date").agg({'Fully_Satisfied': 'sum',
                                                  'CM_satisfaction': 'count'})
day_wise.rename(columns={'CM_satisfaction': 'vote'}, inplace=True)

day_wise['proportion'] = day_wise['Fully_Satisfied'] / day_wise['vote']