在连接分组行时忽略空值

2024-10-01 19:19:33 发布

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

我正在尝试基于列值对数据帧进行分组,并希望连接(联接)其他列中的值。你知道吗

我在做一些类似于-

df_combined = df_combined.groupby('UC').agg({'LO Number': ', '.join,
                                             'K Code': ', '.join})

但是,这给了我一些nan值,其中K Code列没有值。所以结果看起来像

K Code

K0016, K0068, nan, nan, A0046

nan, nan, nan

如何去掉K Code列中的这些nan值?另外,还有一种方法可以获得第三列,该列的值的数目在K Code列中。例如,对于上述情况

Count

3   

0

编辑:示例数据-

UC      LO Number      K Code
C001     C001.1        K0068
C001     C001.2        K0372
C002     C002.1        
C002     C002.3        K0032
C002     C002.5          

谢谢!:)


Tags: 数据numberlodfcodenanaggjoin
1条回答
网友
1楼 · 发布于 2024-10-01 19:19:33

您可以尝试将lambdaagg一起使用,但是这将创建多个索引

因为younan是nan,所以在下面运行之前请先替换它

df=df.replace({'nan':np.nan})


df_combined.groupby('UC').agg({'LO Number': ', '.join,
                                             'K Code': [lambda x : ', '.join(y for y in x if y==y),'count']})

如果你不想要多重索引

df_combined.assign(count=df_combined['K Code']).
         groupby('UC').agg({'LO Number': ', '.join,
                           'K Code': lambda x : ', '.join(y for y in x if y==y),
                            'count':'count'})

相关问题 更多 >

    热门问题