python - 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 列获得计数
非常感谢任何见解。
解决方案
您必须替换 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
推荐阅读
- python - 使用 .to_csv() 写入 TXT 时替代跳过
- angular - 边界无效
- jsf - 仅当 url 是确切路径时才呈现 jsf 元素
- automation - 从哪里开始创建将在网站上执行任务的机器人
- android - 实时数据。无法分配给“值”:setter 受保护/*保护和打包*/ 用于合成扩展
- c - 我正在尝试将第一个单词提取为字符串并将其用作字符
- installation - 如果包大小很大,NSIS Edit 不会提取所有文件和文件夹
- react-native - React Native Image url 作为参数
- php - 尝试使用 PHP 从 2 个数据库中获取数据
- ruby-on-rails - 如何检查日期范围是否在Ruby中的另一个日期范围之间