如何获取python数据帧中出现的两列的唯一组合数

如何获取python数据帧中出现的两列的唯一组合数,python,pandas,Python,Pandas,假设我有一个熊猫数据框 a b 1 203 487 2 876 111 3 203 487 4 876 487 还有更多我不关心的栏目未显示 我知道len(df.a.unique())将返回2以指示a有两个唯一值,正如len(df.b.unique())一样。我想要类似的东西,但返回发生的a和b的唯一组合的数量。在这个例子中,我希望它返回3 如有任何关于如何进行此操作的指导,请使用: 或具有反转条件: a = (~df.duplicated(['

假设我有一个熊猫数据框

     a    b
1    203  487
2    876  111
3    203  487
4    876  487
还有更多我不关心的栏目未显示

我知道
len(df.a.unique())
将返回2以指示a有两个唯一值,正如
len(df.b.unique())
一样。我想要类似的东西,但返回发生的a和b的唯一组合的数量。在这个例子中,我希望它返回3

如有任何关于如何进行此操作的指导,请使用:

或具有反转条件:

a = (~df.duplicated(['a','b'])).sum()

或将列转换为字符串并连接在一起,然后获得:



您是否将以下情况视为两种不同的组合或一种组合

1) “a”是203,“b”是487 2) “a”是487,“b”是203

如果你想让它变成两个,就像耶斯雷尔说的那样,只需使用drop_副本。如果你想让它们算作一个独特的组合,我会创建一个新的列,所以它总是:越小的数字越大,并在这个列上删除重复项

Import numpy as np re
df['c']=np.where(df['a']<df['b'], \
    df['a'].astype('str')+"_"+df['b'].astype('str'), \
        df['b'].astype('str')+"_"+df['a'].astype('str'))

print(len(df.drop_duplicates('c')))
将numpy作为np-re导入
df['c']=np.where(df['a']
a = len(df.index) - df.duplicated(['a','b']).sum()
a = (df.a.astype(str) + '_' + df.b.astype(str)).nunique()
print (a)
3
Import numpy as np re
df['c']=np.where(df['a']<df['b'], \
    df['a'].astype('str')+"_"+df['b'].astype('str'), \
        df['b'].astype('str')+"_"+df['a'].astype('str'))

print(len(df.drop_duplicates('c')))