Python 计算每列和其他类别列中多列的值数
我有一个数据框,它包含多个列,其中0和1(a,B)以及一个列(C)表示行的类别。现在,我想计算每个列和类别的0和1值Python 计算每列和其他类别列中多列的值数,python,pandas,dataframe,group-by,pandas-groupby,Python,Pandas,Dataframe,Group By,Pandas Groupby,我有一个数据框,它包含多个列,其中0和1(a,B)以及一个列(C)表示行的类别。现在,我想计算每个列和类别的0和1值 import pandas as pd test_data = {'A': [0,0,1,1,1,0], 'B': [0,1,0,1,0,1], 'C': ['a','a','b','b', 'c', 'c']} df = pd.DataFrame(test_data) 我试图弄清楚如何使用pd.piovt_表重新排列数据
import pandas as pd
test_data = {'A': [0,0,1,1,1,0],
'B': [0,1,0,1,0,1],
'C': ['a','a','b','b', 'c', 'c']}
df = pd.DataFrame(test_data)
我试图弄清楚如何使用pd.piovt_表重新排列数据帧,但是没有成功地获得正确的转换。我尝试了以下方法:
table = pd.pivot_table(df, columns = ['C'], index=['A'], aggfunc='count')
print('0', table)
这将产生以下输出:
0 B
C a b c
A
0 2.0 NaN 1.0
1 NaN 2.0 1.0
0 B | A # columns A and B
C a a b b c c | a a b b c c # row category based on C
0 1 0 1 0 1 | 0 1 0 1 0 1 # 0 and 1 values of the columns A and B
1 1 1 1 1 1 | 2 0 0 2 1 1 # counts
0 B | A # columns A and B
C a b c | a b c # row category based on C
0| 1 1 1 | 2 0 1
1| 1 1 1 | 0 2 1
我的目标是获得以下输出:
0 B
C a b c
A
0 2.0 NaN 1.0
1 NaN 2.0 1.0
0 B | A # columns A and B
C a a b b c c | a a b b c c # row category based on C
0 1 0 1 0 1 | 0 1 0 1 0 1 # 0 and 1 values of the columns A and B
1 1 1 1 1 1 | 2 0 0 2 1 1 # counts
0 B | A # columns A and B
C a b c | a b c # row category based on C
0| 1 1 1 | 2 0 1
1| 1 1 1 | 0 2 1
[编辑]或以下输出:
0 B
C a b c
A
0 2.0 NaN 1.0
1 NaN 2.0 1.0
0 B | A # columns A and B
C a a b b c c | a a b b c c # row category based on C
0 1 0 1 0 1 | 0 1 0 1 0 1 # 0 and 1 values of the columns A and B
1 1 1 1 1 1 | 2 0 0 2 1 1 # counts
0 B | A # columns A and B
C a b c | a b c # row category based on C
0| 1 1 1 | 2 0 1
1| 1 1 1 | 0 2 1
有人能帮我吗?谢谢大家! 我想你需要事先
第一种情况是第二种情况,使用unstack()
第二种情况是使用stack()的第一种情况 或 输出
0 B A
C a b c a b c
0 1 1 1 2 0 1
1 1 1 1 0 2 1
我想你之前需要
第一种情况是第二种情况,使用unstack()
第二种情况是使用stack()的第一种情况 或 输出
0 B A
C a b c a b c
0 1 1 1 2 0 1
1 1 1 1 0 2 1
非常感谢你的两个答案!我一定会查看df.melt()。非常感谢您的两个答案!肯定会签出df.melt()。