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文件生成的。