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