我有一个数据帧如下:
d = {
'id': [1, 2, 3, 4, 5],
'is_overdue': [True, False, True, True, False],
'org': ['A81001', 'A81002', 'A81001', 'A81002', 'A81003']
}
df = pd.DataFrame(data=d)
现在我想为每个组织计算出过期行的百分比,以及未过期行的百分比。在
我知道如何按组织和过期状态分组:
^{pr2}$但我如何按组织获得比例呢?我想以这样的方式结束:
org is_overdue not_overdue proportion_overdue
A81001 2 0 100
A81002 1 1 50
A81003 0 1 0
您可以使用^{} 。在
首先按组织分组,统计逾期/未逾期的数量。然后计算百分比。在
输出
^{pr2}$您可以使用
pd.crosstab
来创建一个频率表,即为每个org
计算is_overdue
的数目。在收益率
^{pr2}$有更有效的方法来实现这一点,但由于您最初尝试使用聚合函数,因此使用聚合函数可以解决您的问题:
现在你可以很容易地计算出未逾期和逾期比例。在
相关问题 更多 >
编程相关推荐