在不同的列上进行求和和和求平均值,以生成熊猫的总计



我有一个数据帧,类似

name perc score
a    0.2   40
b    0.4   89
c    0.3   90

我想要一个总行,其中perc有一个平均聚合,score有一个和聚合。输出应该像

name perc score
a    0.2   40
b    0.4   89
c    0.3   90
total  0.3  219

我希望它作为一个数据帧输出,因为我需要使用它来构建绘图。现在,我试着做

df.loc['total'] = df.sum()

但这也提供了百分比列的总和,而我想要百分比的平均值。如何在熊猫身上做到这一点?

试试这个:

df.loc['total'] = [df['perc'].mean(), df['score'].sum()]

输出:

perc  score
name              
a      0.20   40.0
b      0.40   89.0
c      0.30   90.0
total  0.30  219.0

如果对列进行切片更方便,可以执行以下操作:

(将第一列a(0(与列bc(1和2(的平均值相加(

df = pd.DataFrame(
{
'a':[1, 2, 3, 4, 5], 
'b':[10, 20, 30, 40, 50], 
'c':[100, 200, 300, 400, 500]
}
)
a   b    c
0  1  10  100
1  2  20  200
2  3  30  300
3  4  40  400
4  5  50  500
df.loc['total'] = pd.concat([df.iloc[:,0:1].sum(), df.iloc[:,1:].mean()]) 
a     b      c
0       1.0  10.0  100.0
1       2.0  20.0  200.0
2       3.0  30.0  300.0
3       4.0  40.0  400.0
4       5.0  50.0  500.0
total  15.0  30.0  300.0

最新更新