我有一个pandas数据帧
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),我得到每列的平均值,但我不知道如何将它作为新行添加到数据帧。请帮忙。
答案 0 :(得分:3)
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
答案 1 :(得分:1)
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