基本上,我正在尝试对['dealer','State','city']的组合进行上一行。如果此组合中有多个值,我将获得此组合的Shifted值。
df['ShiftBY_D_S_C']= df.groupby(['dealer','State','city'])['dealer'].shift(1)
我将再次使用ShiftBY_D_S_C列,并尝试计算['ShiftBY_D_S_C','州','城市']组合的计数。
df['NewColumn'] = (df.groupby(['ShiftBY_D_S_C','State','city'])['ShiftBY_D_S_C'].transform("count"))+1
下表显示了我正在尝试做的事情,并且效果很好。但是,当ShiftBY_D_S_C列中的所有行均为空时,这将不起作用,因为它具有所有空值。有什么建议吗?
当ShiftBY_D_S_C中的所有值均为NaN时,我试图查看如下所示的NewColumn值。
答案 0 :(得分:1)
您可以简单地使用if / else情况处理您描述的特殊情况:
if df['ShiftBY_D_S_C'].isna().all():
df['NewColumn'] = 1
else:
df['NewColumn'] = df.groupby(...)