Python 行和列中具有相同变量的交叉表
我有以下数据帧:Python 行和列中具有相同变量的交叉表,python,pandas,numpy,statistics,crosstab,Python,Pandas,Numpy,Statistics,Crosstab,我有以下数据帧: A B C 0 True False True 1 False True True 2 True True True 3 True False True 我想找出‘A’、‘B’和‘C’的每个组合的编号。例如,如果第一行、第三行和第四行中的'A'和'C'为True,则该数字等于3 预期产出: 我不知道我怎样才能用熊猫做到这一点。也许您还可以告诉我这个交叉表是否有特殊名称。试试numpy。它是np 要添加到@And
A B C
0 True False True
1 False True True
2 True True True
3 True False True
我想找出‘A’、‘B’和‘C’的每个组合的编号。例如,如果第一行、第三行和第四行中的'A'和'C'为True,则该数字等于3
预期产出:
我不知道我怎样才能用熊猫做到这一点。也许您还可以告诉我这个交叉表是否有特殊名称。试试numpy。它是np
要添加到@Andy L.的答案中,您不必将dataframe转换为numpy: df=df.astypeint res=df。T@df 产出: A、B、C A 313 B 1 2 2 C 3 2 4
A B C
A 3 1 3
B 1 2 2
C 3 2 4
arr = df.astype(int).T.to_numpy()
np.inner(arr, arr)
Out[1158]:
array([[3, 1, 3],
[1, 2, 2],
[3, 2, 4]])
df_final = pd.DataFrame(np.inner(arr, arr), columns=df.columns, index=df.columns)
Out[1160]:
A B C
A 3 1 3
B 1 2 2
C 3 2 4