【问题标题】:How to get subtotal for an index from a pivot table如何从数据透视表中获取索引的小计
【发布时间】:2019-08-22 17:57:20
【问题描述】:

我需要更改数据框中子列(Bill2)的值格式

使用数据透视表函数后得到以下输出

data_frame4 = pd.pivot_table(data_frame4, 
                             index=['PC','Geo'], 
                             values=['Bill1', 'Bill2'], 
                             columns=['Month'], 
                             fill_value=0)


data_frame4 = data_frame4.swaplevel(0,1, axis=1).sort_index(axis=1)
元组 = [(a.strftime('%b-%y'), b) if a!= 'All' else (a,b) for a,b in data_frame4.columns]
data_frame4.columns = pd.MultiIndex.from_tuples(tuples)

我的输出:

           jan               Feb
        Bill1 Bill2     Bill1 Bill2     
PC Geo
A  Ind    1     1.28        1    1.28
B  US     1     1.28        1    1.28
C  Can    1     1.28        1    1.28

我想要的输出:

           jan                Feb
       Bill1 Bill2        Bill1 Bill2

PC Geo
A  Ind   1    1.28           1    1.28
   Total 1    1.28           1    1.28
B  US    1    1.28           1    1.28
   Total 1    1.28           1    1.28 
C  Can   1    1.28           1    1.28
   Total 1    1.28           1    1.28

【问题讨论】:

  • @jezrael.. 兄弟如何计算 PC 的小计...请忽略货币符号...我将在最后将值转换为货币格式.. .首先我需要 PC 的小计...还请注意,PC 旁边还有 2 个索引
  • @jezrael...兄弟你能帮帮我吗?
  • 你能从小计中添加exocted outout吗?
  • 我创建解决方案,请为小计创建新问题,然后我添加答案。
  • 嗯,所以你得到了解决方案?

标签: python-3.x pandas


【解决方案1】:

首先仅选择带有slicersBill2 列,然后通过DataFrame.applymapformat 更改值,或者将值转换为字符串并添加$

idx = pd.IndexSlice
df.loc[:, idx[:, 'Bill2']] = df.loc[:, idx[:, 'Bill2']].applymap('${:,.2f}'.format)
#alternative
#df.loc[:, idx[:, 'Bill2']] = '$' + df.loc[:, idx[:, 'Bill2']].astype(str)
#alternative1
#df.loc[:, (slice(None), 'Bill2')] = '$' + df.loc[:, (slice(None), 'Bill2')].astype(str)
print (df)
    jan          Feb       
  Bill1  Bill2 Bill1  Bill2
A     1  $1.28     1  $1.28
B     1  $1.28     1  $1.28
C     1  $1.28     1  $1.28

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-02
    • 2020-10-17
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    相关资源
    最近更新 更多