猿问

我将如何创建一个具有 aa 列的唯一值并对它们进行计数的新数据框?

假设我有一个看起来像这样的 python 数据框:


Factor_1    Factor_2    Factor_3   Factor_4   Factor_5

   A           B           A          Nan       Nan

   B           D           F          A         Nan

   F           A           D          B          A

像这样,我有 5 列具有不同的因素。我想创建一个列来计算数据框中出现的这些因素的数量,因此预期的输出将如下所示:


Factor   Count

  A        5

  B        3

  D        2

  F        2

 Nan       3

我一直在尝试使用 groupby 但无法获得所需的输出,使用这样的东西。


df['Counts'] = df.groupby(['Factor_1'])['Factor_2', 'Factor_3', 'Factor_4', 'Factor_5'].transform('count')

我实际上不知道还能做什么,如果有人能帮助我那就太好了。


慕哥6287543
浏览 104回答 2
2回答

jeck猫

尝试stack使用value_counts:df.stack(dropna=False).value_counts(dropna=False)A      5B      3NaN    3D      2F      2dtype: int64

婷婷同学_

melt这是使用和 的另一个潜在解决方案value_counts:df.melt().value.value_counts()输出:A      5B      3Nan    3F      2D      2
随时随地看视频慕课网APP

相关分类

Python
我要回答