在没有聚合函数的情况下在Python中创建Pandas数据透视表或转置

时间:2018-03-27 14:07:17

标签: python pandas pivot

我试图交叉分析数据集以分析网络浏览行为等序列:

df = pd.DataFrame({'CustId' : [111,111,222,333,333,333], 
                'Page': ['A','B','A','A','B','C']
              })

对于每个CustId,我想最终得到CustID vs Page的交叉表:

enter image description here

数据集已经订购,因为我对分析序列感兴趣。事实上,下一步将是执行组合计数,即多少个CustId遵循路径A | B,多少A |,多少A | B | C

我已经开始这样做,而我能找到的最接近的是:

df2=pd.pivot_table(df,index=['CustId'],values=['Page'],aggfunc='first')

但这显然只返回第一个值。只是提到我的数据集是巨大的(4000万条记录......)。

如果您能帮助我,请提前致谢,我们非常感谢。

1 个答案:

答案 0 :(得分:1)

这是一种方式

df.groupby('CustId').Page.apply(list).apply(pd.Series).fillna('')
Out[729]: 
        0  1  2
CustId         
111     A  B   
222     A      
333     A  B  C