Python 数据透视基于Dataframe中的所有唯一值
我目前有一个如下所示的数据帧: 我正在尝试旋转上述数据帧,以便Python 数据透视基于Dataframe中的所有唯一值,python,pandas,dataframe,pivot-table,Python,Pandas,Dataframe,Pivot Table,我目前有一个如下所示的数据帧: 我正在尝试旋转上述数据帧,以便 指数为一天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