Python 数据透视基于Dataframe中的所有唯一值

Python 数据透视基于Dataframe中的所有唯一值,python,pandas,dataframe,pivot-table,Python,Pandas,Dataframe,Pivot Table,我目前有一个如下所示的数据帧: 我正在尝试旋转上述数据帧,以便 指数为一天24小时,即周一…周日列中的数值 专栏从周一到周日 要填充的值是browser+版本的唯一计数(假设输入df中的每一行在字符串合并时始终具有唯一的browser+版本) 最后的数据帧如下所示(显示前5行,但总共是24行-每小时1行): 我试图查看代码,特别是参数索引,并试图提供我的索引,但结果是错误的。 例如 还有其他功能可以使用吗? 我试图避免为循环编写太多嵌套的,并尝试查看是否有任何内置函数可以使用(只要大部分处理

我目前有一个如下所示的数据帧:

我正在尝试旋转上述数据帧,以便

  • 指数为一天24小时,即周一…周日列中的数值
  • 专栏从周一到周日
  • 要填充的值是browser+版本的唯一计数(假设输入df中的每一行在字符串合并时始终具有唯一的browser+版本)
  • 最后的数据帧如下所示(显示前5行,但总共是24行-每小时1行):

    我试图查看代码,特别是参数索引,并试图提供我的索引,但结果是错误的。 例如

    还有其他功能可以使用吗?
    我试图避免为循环编写太多嵌套的,并尝试查看是否有任何内置函数可以使用(只要大部分处理是由pandas完成的,循环就可以)。还有其他功能可以尝试吗?

    尝试
    melt
    然后
    pivot\u table

    (df.melt(['browser','version'], value_name='hour', var_name='day')
       .pivot_table(index='hour', columns='day', values='browser', 
                    aggfunc='size', fill_value=0)
    )
    
    输出:

    day   Friday  Monday  Saturday  Sunday  Thursday  Tuesday  Wednesday
    hour                                                                
    10am       2       0         1       0         3        1          1
    11am       1       1         3       3         1        1          0
    12pm       1       1         1       2         1        1          3
    1pm        0       2         0       0         0        1          1
    2pm        1       1         0       0         0        1          0
    
    (df.melt(['browser','version'], value_name='hour', var_name='day')
       .pivot_table(index='hour', columns='day', values='browser', 
                    aggfunc='size', fill_value=0)
    )
    
    day   Friday  Monday  Saturday  Sunday  Thursday  Tuesday  Wednesday
    hour                                                                
    10am       2       0         1       0         3        1          1
    11am       1       1         3       3         1        1          0
    12pm       1       1         1       2         1        1          3
    1pm        0       2         0       0         0        1          1
    2pm        1       1         0       0         0        1          0