将pandas pivot sub total移动到底部

时间:2018-06-06 04:05:58

标签: python python-2.7 pandas pivot-table

我有这个数据框,

DistrictName         RegionName Value
Ashburton            Canterbury 451
Auckland City        Auckland   2459
Banks Peninsula      Canterbury 132
Buller               West Coast 361
Carterton            Wellington 75
Central Hawkes Bay   Hawkes Bay 67
Central Otago* Central Otago & Lakes District        Central Otago & Lakes District 190
Christchurch City    Canterbury 2046
Clutha               Otago  119
Dunedin City         Otago  312

我正在尝试对此进行调整并获得每个区域的值和&区,所以这样做,

pivot_table(districtleveldatav1.head(10), values=['Value'],index=['RegionName'], 
                    columns=['DistrictName'], aggfunc=np.sum, margins=True).stack('DistrictName').drop('All', level=0)

给了我这个,

enter image description here

我需要在这里做两件事,

  1. 我怎样才能拥有'所有'在每个地区底部的DistrictName。可能带有标签' Total'

  2. 是否可以根据我的自定义顺序手动订购RegionName。同样是DistrictNames?感谢。

1 个答案:

答案 0 :(得分:0)

列似乎按其名称的字母顺序排列。 All首先出现,因为它以A开头,当按字母顺序排列时,没有其他列出现在它之前。

要设置名称Total而不是All,您可以使用{/ 1}}参数,如

margins_name
设置a.pivot_table(values=['Value'],index=['RegionName'], columns=['DistrictName'], aggfunc=np.sum, margins=True,margins_name="Total").stack('DistrictName').drop('Total', level=0)

这将给出

margins=True

请参阅documentation