【问题标题】:Determine number of unique values of one column for each value of another column为另一列的每个值确定一列的唯一值的数量
【发布时间】:2022-08-07 17:08:14
【问题描述】:

我有:

df = pd.DataFrame({\"A\": [1,2,3,4,5,6,7,8], \"B\": [1,1,2,2,3,3,4,4], \"C\": [1,1,1,1,2,3,2,2] })

    A   B   C
0   1   1   1
1   2   1   1
2   3   2   1
3   4   2   1
4   5   3   2
5   6   3   3
6   7   4   2
7   8   4   2

我想知道,对于 B 列的每个值 b,在 B=b 的行中有多少个 C 列的唯一值 c。

所以我想要一个系列,告诉我类似{1:1, 2:2, 3:2, 4:1} 的意思,例如,当 B=3 时,C 有两个唯一值(即 2 和 3)。

我该怎么做呢?

    标签: python pandas dataframe


    【解决方案1】:

    尝试这个:

    df.groupby("B")["C"].nunique()
    
    > B
      1    1
      2    1
      3    2
      4    1
      Name: C, dtype: int64
    

    【讨论】:

      【解决方案2】:
      df.groupby("B")["C"].nunique().to_dict()
      

      输出:

      {1: 1, 2: 1, 3: 2, 4: 1}
      

      它是如何工作的?

      1. 每次您想根据另一列中的值计算一列中的某些内容时,groupby 即将到来...所以使用它并传递所有分组的值。
      2. 你想要什么? C... 中唯一值的数量...所以使用返回唯一值数量的["C"].nunique()
      3. 最后,你想要dict,所以转换你的结果to_dict()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        • 2016-03-14
        • 2018-08-05
        • 1970-01-01
        • 1970-01-01
        • 2021-06-12
        相关资源
        最近更新 更多