我有一个DataFrame
import pandas as pd
df = pd.DataFrame({
'PART_UNIT': ['A','A','A','A','A'],
'FiscalYear': ['2015/2016','2016/2017','2017/2018','2018/2019','2019/2020'],
'BUY_UNIT_PRICE': [30,32,33,31,35]
})
我已转换为数据透视表
pivot = df.pivot_table(index='PART_UNIT', columns='FiscalYear', values='BUY_UNIT_PRICE', aggfunc='mean')
print(pivot)
FiscalYear 2015/2016 2016/2017 2017/2018 2018/2019 2019/2020
PART_UNIT
A 30 32 33 31 35
我正在寻求帮助来确定每年的发展情况
我希望此示例数据的输出为
FiscalYear 2015/2016 2016/2017 2017/2018 2018/2019 2019/2020
PART_UNIT
A 100 106.67 103,13 93,94 112,9
我该如何在熊猫上做到这一点?
我要执行的功能与excel数据透视表中的功能相同,您可以在其中选择“将值显示为上一年的百分比”
答案 0 :(得分:2)
您可以对axis=1
进行pct_change()
,然后对multiply
做100,最后对add
做100,以匹配预期的输出:
m=(df.pivot_table(index='PART_UNIT', columns='FiscalYear',
values='BUY_UNIT_PRICE', aggfunc='mean'))
m.pct_change(axis=1).mul(100).add(100,fill_value=0)
FiscalYear 2015/2016 2016/2017 2017/2018 2018/2019 2019/2020
PART_UNIT
A 100.0 106.666667 103.125 93.939394 112.903226