pandas 重新排序列参数值

qij5mzcb  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(102)

我使用这个代码valores.pivot(index='MARCA', columns='MES_C', values=['CMC','CMV','VL_VENDAS'])在python和pandas上旋转这个 Dataframe 。
MARCA MES_C CMC巨细胞病毒VL_Vendas 3F 2022年1月0,00 33,85 147,70 3/2022年1月57.130,75 77.457,69 182.964,37 3 M 2022年2月87.177,66 75.491,39 169.560,01
但是columns='MES_C'出现故障。

CMC                   CMV              VL_VENDAS            
MES_C      01/2022    02/2022    01/2022    02/2022     01/2022     02/2022
MARCA                                                                      
3F            0,00        NaN      33,85        NaN      147,70         NaN
3M       57.130,75  87.177,66  77.457,69  75.491,39  182.964,37  169.560,01

怎样改变才能得到这样的结果?

CMC        CMV  VL_VENDAS        CMC         CMV   VL_VENDAS
MES_C      01/2022    01/2022    01/2022    02/2022     02/2022     02/2022
MARCA                                                                      
3F            0,00        NaN      33,85        NaN      147,70         NaN
3M        5.130,75   7.177,66   7.457,69   5.491,39    2.964,37    9.560,01

我想先显示01/2022,然后重复02/2022的值
我试过

valores.pivot(index='MARCA', columns='MES_C', values=['CMC','CMV','VL_VENDAS'])

pd.pivot_table(valores, values=['CMC','CMV','VL_VENDAS'], index='MARCA', columns='MES_C', aggfunc='first')
of1yzvn4

of1yzvn41#

pivot = pd.pivot_table(valores, index=['MARCA'], columns='MES_C', aggfunc={'CMC':'sum','CMV':'sum','VL_VENDAS':'sum'}, fill_value=0, margins=True)
.swaplevel(axis=1)
.sort_index(level=0, axis=1)
.reindex(['CMC','CMV','VL_VENDAS'], level=1, axis=1)
.rename_axis(columns=[None, None])

pivot.to_excel('relatorio.xlsx', sheet_name='cmcxcmv')

使用这段代码,可以更改列顺序并修复问题。

相关问题