我正在尝试从以下数据框(
我有以下两个数据透视表的输出:
位置1: | 状态 | 家具 | 办公用品 | | --- | --- | --- | | 新 | $200 | $300 | | 旧 | $50 | $150 |
位置2: | 状态 | 办公用品 | | --- | --- | | 新 | $200 |
但是,我希望位置2的数据透视表包括所有可能的类别和状态,如果它们不存在,则为0。总之,我希望位置2的数据透视表如下所示:
位置2: | 状态 | 家具 | 办公用品 | | --- | --- | --- | | 新 | $0 | $200 | | 旧 | $0 | $0 |
我已经研究了pivot_table()函数的所有选项,但到目前为止还没有找到任何解决方法。
df
)创建不同位置的数据透视表:
位置 | 类别 | 状态 | 价格 |
---|---|---|---|
1 | 家具 | 新 | $100 |
1 | 家具 | 旧 | $50 |
2 | 办公用品 | 新 | $200 |
1 | 家具 | 新 | $100 |
1 | 办公用品 | 新 | $300 |
1 | 办公用品 | 旧 | $150 |
首先,我使用以下代码对数据框进行了筛选,以分别获取位置为1和2的数据:
df1 = df[df['Location'] == 1]
df2 = df[df['Location'] == 2]
接下来我使用了标准的pandas透视表函数:
pd.pivot_table(df1, values='Price', index='Status', columns='Category', aggfunc=np.sum)
pd.pivot_table(df2, values='Price', index='Status', columns='Category', aggfunc=np.sum)
我有以下两个数据透视表的输出:
位置1: | 状态 | 家具 | 办公用品 | | --- | --- | --- | | 新 | $200 | $300 | | 旧 | $50 | $150 |
位置2: | 状态 | 办公用品 | | --- | --- | | 新 | $200 |
但是,我希望位置2的数据透视表包括所有可能的类别和状态,如果它们不存在,则为0。总之,我希望位置2的数据透视表如下所示:
位置2: | 状态 | 家具 | 办公用品 | | --- | --- | --- | | 新 | $0 | $200 | | 旧 | $0 | $0 |
我已经研究了pivot_table()函数的所有选项,但到目前为止还没有找到任何解决方法。