Python 如何拆分列中的两种值并计算出现的次数?
我想要一个数据帧,它有一个TRUE和FALSE列。我想得到一个数据帧,如: 样本输入Python 如何拆分列中的两种值并计算出现的次数?,python,pandas,Python,Pandas,我想要一个数据帧,它有一个TRUE和FALSE列。我想得到一个数据帧,如: 样本输入 Country | Class | Catalog A | abc | TRUE A | abc | FALSE B | def | TRUE C | ghi | FALSE Country | Class | TRUE | FALSE | TOTAL A | abc | 1 | 1 | 2 B | def | 1 | 0 | 1 C
Country | Class | Catalog
A | abc | TRUE
A | abc | FALSE
B | def | TRUE
C | ghi | FALSE
Country | Class | TRUE | FALSE | TOTAL
A | abc | 1 | 1 | 2
B | def | 1 | 0 | 1
C | ghi | 0 | 1 | 1
样本输出
Country | Class | Catalog
A | abc | TRUE
A | abc | FALSE
B | def | TRUE
C | ghi | FALSE
Country | Class | TRUE | FALSE | TOTAL
A | abc | 1 | 1 | 2
B | def | 1 | 0 | 1
C | ghi | 0 | 1 | 1
我试过:
df.groupby(['Country','Class','Country'])['Catalog'].value_counts()
但我没有得到预期的结果
对此有何帮助?通过以下方式与“删除最后一行”一起使用:
您的解决方案应通过以下方式进行更改并添加新列:sum
s:
#removed repeated column in groupby
df1 = (df.groupby(['Country','Class'])['Catalog']
.value_counts()
.unstack(fill_value=0)
.assign(Total = lambda x: x.sum(axis=1)))
print (df1)
Catalog False True Total
Country Class
A abc 1 1 2
B def 0 1 1
C ghi 1 0 1
最后是MultiIndex
add和中的列:
您好,我尝试了第二种解决方案,但在用Excel中的数据透视表验证时,数字不匹配,试图找出原因。@coder_bg-Hmmm,很难说,差异很大?是的,非常显著。我们应该使用COUNT而不是SUM吗?@coder\u bg-不,你需要的是counts@coder_bg-是否可能更改查看错误输出的数据?