在同一时间移动和计数

2024-10-04 03:23:08 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我是在尝试将前一行作为['dealer','State','city]的组合。如果这个组合中有多个值,我将得到这个组合的移位值

df['ShiftBY_D_S_C']= df.groupby(['dealer','State','city'])['dealer'].shift(1)

我再次使用ShiftBY\u D\u S\C列,并尝试计算['ShiftBY\u D\u S\u C','State','city']组合

df['NewColumn'] = (df.groupby(['ShiftBY_D_S_C','State','city'])['ShiftBY_D_S_C'].transform("count"))+1

下表显示了我正在尝试做什么,它的工作也很好。但是当ShiftBY\u D\u S\C列中的所有行都为null时,这就不起作用了,因为它的值都为null。有什么建议吗

enter image description here

当ShiftBY\u D\u S\C中的所有值都为NaN时,我尝试查看如下所示的NewColumn值

enter image description here


Tags: citydfshiftcounttransformnannull建议
1条回答
网友
1楼 · 发布于 2024-10-04 03:23:08

您可以简单地处理您用if/else案例描述的特殊案例:

if df['ShiftBY_D_S_C'].isna().all():
    df['NewColumn'] = 1
else:
    df['NewColumn'] = df.groupby(...)

相关问题 更多 >