Python 使用数据帧的两列创建矩阵,并统计事件的发生次数

Python 使用数据帧的两列创建矩阵,并统计事件的发生次数,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个Df,看起来像这样:- tests machine A mac1 A mac1 A mac2 A mac2 B mac1 B mac1 B mac3 C mac3 C mac3 使用此Df,我想创建一个如下所示的数据帧: No_of_tests mac1 mac2 mac3 A 2 2

我有一个Df,看起来像这样:-

    tests machine
    A     mac1
    A     mac1
    A     mac2
    A     mac2
    B     mac1
    B     mac1
    B     mac3
    C     mac3
    C     mac3
使用此Df,我想创建一个如下所示的数据帧:

    No_of_tests   mac1 mac2 mac3
    A             2    2    0     #test A is done 2 times on mac1, 2 times on mac2 and so on
    B             2    1    0     #test B is done 2 times on mac1, 1 time on mac2 and so on
    C             0    0    2     #test C is done 0 times on mac1, 0 times on mac2 and so on  
谁能帮我用上面的数据框创建这个矩阵。

IICU

 df.groupby('tests')['machine'].value_counts().unstack('machine', fill_value=0).reset_index()

pd.crosstab(df.tests,df.machine,df.machine,aggfunc='count')
我在使用这个@datanoveler之后得到了所有的NAN值,我认为NAN代表0的意思是测试没有在那台机器上执行?对于不匹配的使用
fillna(0)