【发布时间】:2022-01-24 03:02:08
【问题描述】:
a) 给定以下“id”和“freq”
df = pd.DataFrame({'id':[1,1,1,1,1,1,2,2,2,2,2,3,3,3],'freq':[1,2,np.NaN, np.NaN, np.NaN, 6,7,8,9,10,np.NaN,np.NaN,13,14]})
df
b) 如何通过“id”计算“freq”组的累积缺失?当频率 > 0 时重置为零
所以结果 'cum_null' 应该看起来像 - 打印(df(['cum_null']) 0 0 1 2 3 0 0 0 0 0 1 1 0 0
c) 我试过这个。非常接近,但当 freq > 0 时无法重置为零
df['cum_null'] = id_grp['freq'].apply(lambda x:x.isnull().astype(int).cumsum())
df
【问题讨论】:
-
您的样本的预期输出是什么?
-
打印(df(['cum_null']) 0 0 1 2 3 0 0 0 0 0 1 1 0 0
-
样本中的频率始终大于 0
-
'freq" 是指“id”在给定月份的交易次数。所以 1 表示 1 次交易,2 表示 2 次交易,null 表示“没有”交易。我想知道没有任何交易的月数如何,即计算“freq”月份连续为空的情况。