Skip to main content
 首页 » 编程设计

python之( python ) : DataFrames add a total row that is the sum of only one column

2025年05月04日15tintown

我有一组数据框,想添加一个总行,只对其中一列求和(下表示例)

我可以使用 df.loc['Total']= df.sum() 或什至 df.loc['Total'] = [df[x] 添加总计列.sum() for x in df.columns],但是我需要除 A 之外的所有列都显示空白,并且语法存在一些问题。

Item    A   B   C   D   E   F 
1       1   2   3   4   5   6 
2       5   10  15  20  25  30 
3       10  20  30  40  50  60 
4       5   15  25  35  45  55 
Total   21   

感谢任何帮助,谢谢

请您参考如下方法:

我认为您需要为总和选择列,然后为输出指定列:

df.loc['Total', 'A']= df['A'].sum() 
print (df) 
       Item     A     B     C     D     E     F 
0       1.0   1.0   2.0   3.0   4.0   5.0   6.0 
1       2.0   5.0  10.0  15.0  20.0  25.0  30.0 
2       3.0  10.0  20.0  30.0  40.0  50.0  60.0 
3       4.0   5.0  15.0  25.0  35.0  45.0  55.0 
Total   NaN  21.0   NaN   NaN   NaN   NaN   NaN 

将 NaN 替换为空白是可能的,但得到混合类型 - 带有字符串的数字和一些函数应该失败:

df.loc['Total'] = df[['A']].sum().reindex(df.columns, fill_value='') 
print (df) 
      Item   A   B   C   D   E   F 
0        1   1   2   3   4   5   6 
1        2   5  10  15  20  25  30 
2        3  10  20  30  40  50  60 
3        4   5  15  25  35  45  55 
Total       21        

如果需要将值附加到 2 列需要分配值列表:

df.loc[len(df), ['Item','A']]= ['Total', df['A'].sum()] 
print (df) 
    Item     A     B     C     D     E     F 
0      1   1.0   2.0   3.0   4.0   5.0   6.0 
1      2   5.0  10.0  15.0  20.0  25.0  30.0 
2      3  10.0  20.0  30.0  40.0  50.0  60.0 
3      4   5.0  15.0  25.0  35.0  45.0  55.0 
4  Total  21.0   NaN   NaN   NaN   NaN   NaN