【发布时间】:2021-02-12 17:20:08
【问题描述】:
我希望能够以不同的方式显示多索引数据透视表中的小计列,例如,我想显示选定行的总和和另一行的最大值,这可能吗?
我设法让一半代码正确,但我被困在复制代码而没有偏移前一个代码,我无法循环此代码。
在我的示例中,我想从新创建的 Total 列中获取 Toyota 的最大值和 Honda 的总和值。
cars = {'Brand': ['Honda','Toyota', 'Honda','Toyota'],
'Target': ['A','B', 'A','B'],
'Speed': [20, 80, 30 , 10],
'Date' : ['13/02/2019', '18/02/2019', '18/02/2019', '13/02/2019']
}
df = pd.DataFrame(cars)
table = pd.pivot_table(df, values=['Speed'],
index=['Target', 'Brand'],
columns=['Date'],
fill_value=0, aggfunc=np.sum, dropna=True)
table
创建的代码:(仅适用于最后一行,因为它会覆盖第一行)
table['Total'] = table.loc(axis=0)[:, ['Toyota']].max(axis=1)
table['Total'] = table.loc(axis=0)[:, ['Honda']].sum(axis=1)
当前输出:
不理想的输出:
我还希望能够看到 Toyota 的最大值为 80。
【问题讨论】:
标签: python pandas loops pivot-table multi-index