Python 如何获得具有多个值的每个单元格中的唯一值,并汇总每列中出现的总值

Python 如何获得具有多个值的每个单元格中的唯一值,并汇总每列中出现的总值,python,pandas,Python,Pandas,我试图用多个值获取每个单元格中的唯一值,并对每列中出现的总值求和 Example: Name A1 B1 C1 John 1,2,2,2 1,1,1 2,2,2 Cat 2,3,3,3 1,2,3 1,3,3 Dog 3,4 2,3 1 我将得到的答案是: A1 B1 C1 Sum Values - Count Values - Count Val

我试图用多个值获取每个单元格中的唯一值,并对每列中出现的总值求和

Example:
Name  A1        B1     C1
John  1,2,2,2   1,1,1  2,2,2
Cat   2,3,3,3   1,2,3  1,3,3
Dog   3,4       2,3    1
我将得到的答案是:

       A1             B1             C1            Sum
Values - Count Values - Count Values - Count Values - Count    
     1 - 1          1 - 2          1 - 1          1 - 4
     2 - 2          2 - 2          2 - 2          2 - 6
     3 - 2          3 - 2          3 - 1          3 - 6
     4 - 1                                        4 - 1
你可以这样做

s=df.loc[:,'A1':].applymap(lambda x : list(set(x.split(',')))).sum()
df=pd.DataFrame(s.tolist(),index=s.index)
yourdf=df.stack().groupby(level=0).value_counts().unstack(0)
yourdf['sum']=yourdf.sum(1)
yourdf
Out[378]: 
    A1   B1   C1  sum
1  1.0  2.0  2.0  5.0
2  2.0  2.0  1.0  5.0
3  2.0  2.0  1.0  5.0
4  1.0  NaN  NaN  1.0

在您的示例数据框中是那些字符串还是列表?另外,您可以在这个问题中输入生成输入样本数据框的代码吗?很难理解您的逻辑,为什么B1 3计数有3次?它们是字符串,此数据框是从CSV文件生成的。