我尝试创建具有2019年11月03日截止日期的G/L组明智日期存储桶(0,30,180,360,720,以及以上)。请帮帮我。 这是我的数据集
G/L DocDate Amount_in_local_cur
22161002 11/30/2019 106788990.47
22161002 10/31/2019 75813682.86
22161003 11/30/2019 64342488.02
22161002 9/30/2019 45439306.00
22161003 10/31/2019 42692553.02
22161002 9/30/2019 39513086.49
22161003 10/31/2019 27789087.03
22161003 11/30/2019 25070257.05
22161003 9/30/2019 24139365.38
22161002 8/31/2019 23271726.99
22161002 11/30/2019 22915726.16
22161002 8/31/2019 21424057.20
22161003 9/30/2019 16399392.20
22161002 11/30/2019 12237506.03
我期待像下面的表格
G/L <0 0-29 30-89 90-179 180-364 65-720 >720
22161003 XX XX XX xx xx xx xx
22161002 xx xx xx xx xx xx xx
请支持。 问题来源StackOverflow 地址:/questions/59465921/aging-buckets-analysis
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在这里,我不确定您要如何使用截止日期以及您的汇总函数是什么,但是在我看来您需要使用pd.cutand pd.pivot_table。
import pandas as pd
import numpy as np
df["DocDate"] = pd.to_datetime(df["DocDate"])
cutoff_date = '2019-11-03'
# days from cutoff_date
df["days"] = (df["DocDate"] - pd.Timestamp(cutoff_date)).dt.days
bins = [-np.infty,0,30,180,360,720, np.infty]
df["bins"] = pd.cut(df['days'], bins)
out = pd.pivot_table(df,
index=["G/L"],
columns=["bins"],
values=["Amount_in_local_cur"],
aggfunc=np.sum)
# this is just to get rid of multiindex in columns
out.columns = [o[1] for o in out.columns]
print(out)
(-inf, 0.0] (0.0, 30.0]
G/L
22161002 2.054619e+08 1.419422e+08
22161003 1.110204e+08 8.941275e+07