代码之家  ›  专栏  ›  技术社区  ›  Max Ghenis shoyer

2x2熊猫差异表

  •  0
  • Max Ghenis shoyer  · 技术社区  · 7 年前

    我想用熊猫做一张这样的桌子:

    difference table

    我从这样一个透视表开始:

    # Create data.
    df = pd.DataFrame({
      'treatment': [True, False, True, False],
      'young': [True, True, False, False],
      'val': [10, 5, 8, 12]
    })
    # Pivot.
    df.pivot_table('val', 'treatment', 'young')
    # young     False  True
    # treatment     
    # False        12     5
    # True          8    10
    

    1 回复  |  直到 7 年前
        1
  •  0
  •   Max Ghenis shoyer    7 年前

    diff

    # Save the pivot table as we'll use it later.
    p = df.pivot_table('val', 'treatment', 'young')
    # Add the diff row.
    p.loc['diff'] = p.diff().iloc[1]
    # Add the diff column.
    p['diff'] = p.diff(axis=1).iloc[:, 1]
    p
    # young      False  True    diff
    # treatment         
    # False       12.0   5.0    -7.0
    # True         8.0  10.0     2.0
    # diff        -4.0   5.0     9.0