如何在 pandas 中制作行总和数据框?

how to make row sum data frame in pandas?

我有如下数据框 我想做一个新的数据框 和 a、b、c、d 列值是字符串。

      name  a         b     c      d 
      aa.   10,000  1,000 1,000  1,000
      bb.   10,000  1,000 1,000  1,000
      cc.   10,000  1,000 1,000  1,000
      dd.   10,000  1,000 1,000  1,000
      ee.   10,000  1,000 1,000  1,000
      ff.   10,000  1,000 1,000  1,000
      gg.   10,000  1,000 1,000  1,000

例如,新的行和数据框应如下所示

  sum   70,000  70,000 70,000  70,000

我尝试使用 df.sumO() 但得到了一个对象类型。但是我需要 数据框是 sum 70,000 70,000 70,000 70,000

所以我在这里提问。提前谢谢你!

您可以对所有列使用 sum,然后将 sum 值设置为 name 列的最后一个值:

i = len(df)
df.loc[i] = df.sum()
df.loc[i, 'name'] = 'sum'
print (df)
  name   a   b   c   d
0  aa.   1   1   1   1
1  bb.   1   0   0   1
2  cc.   3   4   4   4
3  dd.   2   2   2   2
4  ee.   1   1   1   1
5  ff.   1   1   1   1
6  gg.   1   1   1   1
7  sum  10  10  10  11

编辑:如果可能的列是非数字的,则对没有第一个的所有列使用to_numeric,获取总和并将name值添加到Series,最后分配新行:

s = df.iloc[:, 1:].apply(pd.to_numeric, errors='coerce').sum()
s.loc['name'] = 'sum'
df.loc[len(df)] = s

print (df)
  name   a   b   c   d
0  aa.   1   1   1   1
1  bb.   1   0   0   1
2  cc.   3   4   4   4
3  dd.   2   2   2   2
4  ee.   1   1   1   1
5  ff.   1   1   1   1
6  gg.   1   1   1   1
7  sum  10  10  10  11