数据透视表的数学计算

2024-10-01 09:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用pandas数据框将一个excel工作表转换为透视表。我想做一些计算。创建的透视表如下所示。第一行是标题。 我想计算每个项目的收益率,例如Badam=T/HA(即,Badam = 14558/4811的收益率),并添加收益率作为我的最后一列。 T和HA来自“单位”列。 我找不到任何进一步的例子。如果有专家帮忙就好了。你知道吗

enter image description here

或者我应该从pivot表转移到“groupby”来进行这种计算吗?谢谢。你知道吗


Tags: 数据项目标题pandas单位excel例子pivot
2条回答

示例数据:

    state   District    Year    Item    Unit    Amount
0   TN      Trichy      2016    Badam   HA  4811
1   TN      Trichy      2016    Badam   N   59
2   TN      Trichy      2016    Badam   T   14558
3   TN      Trichy      2016    Carrots HA  18973
4   TN      Trichy      2016    Carrots N   123
5   TN      Trichy      2016    Carrots T   35990

代码如下:

res = df.pivot_table(index=['state','District','Year','Item'], values = 'Amount', columns =['Unit'])

    Out[25]: 
                        Unit       HA    N      T
    state District Year Item                      
    TN    Trichy   2016 Badam     4811   59  14558
                        Carrots  18973  123  35990

res.assign(result = res['T']/res['HA'])

    Out[28]: 
                        Unit        HA    N      T    result
    state District Year Item                                
    TN    Trichy   2016 Badam     4811   59  14558  3.025982
                        Carrots  18973  123  35990  1.896906

谢谢。我按照亚历克赛说的做了尝试,计算了结果。我试着用(到excel)把数据透视表转换成excel表。但只有最后4列被写入excel表格(即“HA,N,T和results”,而不是state,District,Year和Item。如何将8列全部写入excel工作表?你知道吗

下一件事就是资源堆栈(). 这是熊猫系列,然后将它们转换成数据框,然后写入excel工作表。这也是将所有列写入excel文件中的一个高列。这是否意味着当我尝试使用res.assign(result = res['T']/res['HA'])进行计算时,pivot表丢失了? 有人能告诉我怎么把这张桌子拆开吗

   state District Year Item      HA     N   T      results           
   TN    Trichy   2016 Badam     4811   59  14558  3.025982
   TN    Trichy   2016 Carrots  18973  123  35990  1.896906

谢谢。你知道吗

相关问题 更多 >