【问题标题】:adding a row to pandas dataframe with column averages [duplicate]使用列平均值向熊猫数据框添加一行[重复]
【发布时间】:2017-03-21 03:26:42
【问题描述】:

我有一个熊猫数据框

 df = pd.DataFrame([[0,1,10,15],[1,5,7,10],[10,15,0,0]], columns=['Apple','Orange','Banana','Pear'], index=['basket1','basket2','basket3'])

我需要生成一个看起来像的数据框

Fruit   Apple   Orange   Banana  Pear  mean_basket

basket1   0        1       10     15     6.5

basket2   1        5        7     10     5.75

basket3   10       15       0      0     6.25

mean_fruit 3.66     7       5.66   8.33   6.16

我做了df['mean_basket'] = df.mean(axis=1) 并生成了最后一列。 通过 df.mean(axis=0),我得到了每列的平均值,但我不知道如何将它作为新行添加到数据框中。请帮忙。

【问题讨论】:

    标签: python pandas


    【解决方案1】:
    df = pd.DataFrame([[0,1,10,15],[1,5,7,10],[10,15,0,0]], columns=['Apple','Orange','Banana','Pear'], index=['basket1','basket2','basket3'])
    df['mean_basket'] = df.mean(axis=1)
    df.loc['mean_fruit'] = df.mean()
    df
    

    【讨论】:

      【解决方案2】:
      df.append(df.mean().rename('mean_fruit')).assign(mean_basket=lambda df: df.mean(1))
      
                      Apple  Orange     Banana       Pear  mean_basket
      basket1      0.000000     1.0  10.000000  15.000000     6.500000
      basket2      1.000000     5.0   7.000000  10.000000     5.750000
      basket3     10.000000    15.0   0.000000   0.000000     6.250000
      mean_fruit   3.666667     7.0   5.666667   8.333333     6.166667
      

      或使用pipe

      df.assign(
          mean_basket=df.mean(1)
      ).pipe(lambda df: df.append(df.mean().rename('mean_fruit')))
      
                      Apple  Orange     Banana       Pear  mean_basket
      basket1      0.000000     1.0  10.000000  15.000000     6.500000
      basket2      1.000000     5.0   7.000000  10.000000     5.750000
      basket3     10.000000    15.0   0.000000   0.000000     6.250000
      mean_fruit   3.666667     7.0   5.666667   8.333333     6.166667
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-11
        • 1970-01-01
        • 2021-11-10
        • 2014-11-30
        • 1970-01-01
        相关资源
        最近更新 更多