首页 > 解决方案 > Pandas - 所有唯一列组合的计数,包括 NONE 行

问题描述

我有以下数据框:

      x_1   x_2     x_3     x_4        x_5    ID
0     159   xyz  883nne2  28h93  xx_lightz    10
1     159   xyz  883nne2  28h93  xx_lightz    10
2     159   xyz  883nne2  28h93        NaN    10
3     159   xyz  94mmm4k    NaN      heavy    15
4     159   xyz  94mmm4k    NaN      heavy    15
3     354   abc  94mmm4k    NaN        NaN     3    

我想根据 ID 列捕获所有独特的可能性并创建一个计数列,输出为:

      x_1          x_2     x_3     x_4        x_5    ID  Count
0     159          xyz  883nne2  28h93  xx_lightz    10      2  
1     159          xyz  883nne2  28h93        NaN    10      1
2     159          xyz  94mmm4k    NaN      heavy    15      2
3     354          abc  94mmm4k    NaN        NaN     3      1

同样,最终目标是采用在 x_1 到 x_5 列中找到的所有可能组合,并根据 ID 列获得计数

非常感谢任何见解。

标签: pythonpandasdataframe

解决方案


您必须替换 nan 值,因为它们将被排除在外。请参阅文档。你可以试试这个:

df.fillna('').groupby(df.columns.to_list()).size().reset_index().rename(columns={0:'count'})

   x_1  x_2      x_3    x_4        x_5  ID  count
0  159  xyz  883nne2  28h93             10      1
1  159  xyz  883nne2  28h93  xx_lightz  10      2
2  159  xyz  94mmm4k             heavy  15      2
3  354  abc  94mmm4k                     3      1

推荐阅读