Skip to main content
 首页 » 编程设计

python之如何在 Pandas 中对两列进行区分

2025年05月04日23mate10pro

我有一个数据框如下:

>>> df 
     0   1   2    3  4  5 
  0  1   2   3  1.0  A  B 
  1  2   5   6  1.0  A  B 
  2  1   7   8  NaN  C  A 
  3  2  10  11  1.0  B  B 

我想计算第 0 列中每个值相对于两列(4 和 5)的唯一值出现的次数。例如,在上述情况下,输出将是这样的

     0   1    
  0  1   3    
  1  2   2    

因为对于第 0 列中的值 1,第 4 列和第 5 列中的唯一值的数量是 A、B、C,而对于值 2 只有 A、B。

请您参考如下方法:

您可以groupby第 0 列,展平第 4 列和第 5 列的值,然后计算唯一值的数量:

import pandas as pd 
import numpy as np 
df.groupby("0")[['4', '5']].apply(lambda g: len(np.unique(g.values.flatten()))) 
 
 
#0 
#1    3 
#2    2 
#dtype: int64