【发布时间】:2018-09-05 10:13:34
【问题描述】:
是否有任何方法或函数可以填补python中缺少的数据透视表的多列和多行?
import pandas as pd
import numpy as np
from io import StringIO
csvfile = StringIO("""Date;Cat;Type;Value
01-Jan;AA;S;1
02-Jan;AA;F;2
02-Jan;BB;T;3
04-Jan;BB;T;3
05-Jan;CC;T;2
05-Jan;DD;T;1
05-Jan;BB;S;4
05-Jan;AA;S;2
05-Jan;DD;S;4""")
df = pd.read_csv(csvfile, sep = ';')
pt = pd.pivot_table(df, values = 'Value', index=['Cat', 'Type'], columns= ['Date'], aggfunc = np.sum, fill_value = 0)
pt
上面的代码结果显示如下,某些Cat的Type列缺少值(F,S,T),缺少03-Jan列:
Cat|Type|01-Jan|02-Jan|04-Jan|05-Jan|
---+----+------+------+------+------+
AA |F | | 2| | |
|S | 1| | | 2|
BB |S | | | | 4|
|T | | 3| 3| |
CC |T | | | | 2|
DD |S | | | | 4|
|T | | | | 1|
但预期的结果是:
Cat|Type|01-Jan|02-Jan|03-Jan|04-Jan|05-Jan|
---+----+------+------+------+------+------+
AA |F | | 2| | | |
|S | 1| | | | 2|
|T | | | | | |
BB |F | | | | | |
|S | | | | | 4|
|T | | 3| | 3| |
CC |F | | | | | |
|S | | | | | |
|T | | | | | 2|
DD |F | | | | | |
|S | | | | | 4|
|T | | | | | 1|
【问题讨论】:
标签: python pandas dataframe pivot-table