簡體   English   中英

使用pandas在python中旋轉表

[英]pivot a table in python using pandas

我有一個如下表:(當前該表被過濾以僅顯示1個訪問者)

vstid vstrseq  date       page   timespent

1       1     1/1/16      a       20.00
1       1     1/1/16      b       3.00
1       1     1/1/16      c       131.00
1       1     1/1/16      d        .000
1       1     1/1/16      a       3.00

我想要這樣的:

vstid   vstrseq      date      a   b   c   d
1        1          1/1/16    23   3  131  0

我試圖創建一個如下所示的數據框並嘗試對其進行透視:

ptable=pd.DataFrame(table,columns= ['vstid','vstrseq','date','page','timespent'])
pvtable=pd.pivot_table(ptable,index='vstid','vstrseq','date'],columns='page',values='timespent',aggfunc=np.sum)

我收到如下錯誤消息:

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3824)()

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3704)()

pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12280)()

pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12231)()

KeyError: 'TIMESPENT'`

您在索引定義中僅缺少一個括號:

import pandas as pd
import numpy as np

df2 = pd.DataFrame({ 'vstid' : 1.,
                     'vstrseq' : 1, 
                     'date' :  "1/1/16",
                     'page' : pd.Categorical(["a","b","c","d", "a"]),
                     'timespent' : pd.Categorical([20.00,3.0, 131.0,0.0, 3.0])})
print df2  

df3=pd.pivot_table(df2,index=['vstid','vstrseq','date'],columns='page',values='timespent',aggfunc=np.sum)

print df3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM