Python Pivot或Crosstab使用一列来计算百分比差异

时间:2018-07-10 23:21:20

标签: python analytics analysis

我正在尝试创建一个表,其中包含一列中值的百分比差异计算。我想在表格中显示此表格,标签0-15M,15-25M ...等在表格的左侧和顶部,表格中的值是每种组合计算得出的百分比差异。我要使用的值如下:

label   value
0-15M   18.274490   
15-25M  21.338270   
25-35M  22.607708   
35-45M  24.078338   
45-55M  25.545316   
55-65M  26.951005   
65-75M  27.765658

我尝试使用数据透视表来执行此操作,但是尝试仅使用一列进行计算似乎无效。我尝试过的代码如下:

pd.pivot_table(test, index='label', columns='label', aggfunc=[np.mean])

这是结果:

        0-15M   15-25M  25-35M  35-45M  45-55M  55-65M  65-75M

0-15M   18.27   NaN     NaN     NaN     NaN     NaN     NaN
15-25M  NaN     21.33   NaN     NaN     NaN     NaN     NaN
25-35M  NaN     NaN     22.60   NaN     NaN     NaN     NaN
35-45M  NaN     NaN     NaN     24.07   NaN     NaN     NaN
45-55M  NaN     NaN     NaN     NaN     25.54   NaN     NaN
55-65M  NaN     NaN     NaN     NaN     NaN     26.95   NaN
65-75M  NaN     NaN     NaN     NaN     NaN     NaN     27.76
75-85M  NaN     NaN     NaN     NaN     NaN     NaN     NaN
85-95M  NaN     NaN     NaN     NaN     NaN     NaN     NaN

因此,您可以看到它仅计算它已经具有的值,而不是从组合中计算新值。

任何对此的帮助将是巨大的!谢谢。

1 个答案:

答案 0 :(得分:0)

解决方案:我最终使用循环执行此操作,并将列表附加在一起以形成数据框。

for x in df.iloc[2,]:
    for y in df.iloc[2,]:
        solution.append((x-y)/y)