Ошибка преобразования значения сводной таблицы в pands - PullRequest
0 голосов
/ 13 ноября 2018

Я получаю данные из таблицы, которая содержит

execution_time, type, status, process, sub_process, value 
2018-11-12 16:09:48.179547, backlog, started, p1, s1, 100
2018-11-12 16:09:48.179547, backlog, created, p1, s1, 1005
2018-11-12 16:09:48.179547, backlog, started, p2, s1, 500
2018-11-12 16:09:48.179547, V1, created, p1, s1, 10
2018-11-12 16:09:48.179547, V2, created, p1, s1, 15
2018-11-12 16:09:48.179547, backlog, started, p3, s1, 0
2018-11-12 16:09:48.179547, backlog, started, p4, s1, 45
2018-11-12 16:09:48.179547, V1, started, p4, s1, 400 

Я хочу повернуть эти данные так, чтобы они выглядели так:

status, process, sub_process, backlog, V1, V2

(backlog, V1 и V2 должны содержать соответствующие значения, если они существуют) Вот мой код.Я получаю ошибку, так как

pivot_table () получил несколько значений для аргумента 'values'

sql = "select * from temp.data_table"
cursor.execute(sql)
results = cursor.fetchall()
df = pd.DataFrame(results)
df=df.pivot_table(index=['status','process','sub_process'],columns='type',values='value', aggfunc = 'sum')

1 Ответ

0 голосов
/ 13 ноября 2018

Использование (удалить df in pivot_table)

df.pivot_table(index=['status','process','sub_process'],columns='type',values='value', aggfunc = 'sum')
Out[85]: 
type                             V1    V2   backlog
status   process sub_process                       
 created  p1      s1           10.0  15.0    1005.0
 started  p1      s1            NaN   NaN     100.0
          p2      s1            NaN   NaN     500.0
          p3      s1            NaN   NaN       0.0
          p4      s1          400.0   NaN      45.0

Или pd.pivot_table

pd.pivot_table(df,index=['status','process','sub_process'],columns='type',values=['value'], aggfunc = 'sum')
Out[86]: 
                              value               
type                             V1    V2  backlog
status   process sub_process                      
 created  p1      s1           10.0  15.0   1005.0
 started  p1      s1            NaN   NaN    100.0
          p2      s1            NaN   NaN    500.0
          p3      s1            NaN   NaN      0.0
          p4      s1          400.0   NaN     45.0
...