You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Pandas 2.0中为DataFrame添加符合特定计算规则的行

解决方法

假设你使用Pandas处理DataFrame,以下是实现需求的具体步骤:

  1. 导入库并准备原始数据
    先创建(或加载)你现有的DataFrame:
import pandas as pd

df = pd.DataFrame({
    'A': [1, 5, 6],
    'B': [2, 6, 8],
    'C': [3, 7, 10],
    'D': [4, 8, 12],
    'Total': [10, 26, 36]
})
  1. 计算列总和行(若未添加)
    如果你还没有存储每列总和的行,先计算并添加:
df.loc['Col_Sum'] = df.sum(numeric_only=True)
  1. 构造目标新行
    根据你的预期结果,新行的差值是列总和行中后一列与前一列差值的一半(以此得到2,2,2,24的结果)。先计算这些差值,再构造新行:
# 计算列总和的后列减前列,去掉A列的NaN值
diff_values = df.loc['Col_Sum'].diff().drop('A') / 2
# 构造新行:第一列为NaN,其余为计算出的差值
new_row = pd.Series([pd.NA] + diff_values.tolist(), index=df.columns, name='Diff_Row')
  1. 合并新行到原DataFrame
    使用concat将新行添加到原DataFrame(Pandas 2.0+已弃用append,推荐用concat):
df = pd.concat([df, new_row.to_frame().T])

执行完以上代码后,你的DataFrame就会添加符合要求的新行,最终结果如下:

A     B     C     D  Total
0       1.0   2.0   3.0   4.0   10.0
1       5.0   6.0   7.0   8.0   26.0
2       6.0   8.0  10.0  12.0   36.0
Col_Sum 12.0  16.0  20.0  24.0   72.0
Diff_Row  NaN   2.0   2.0   2.0   24.0

如果你不需要保留列总和行,可以在添加新行后用df = df.drop('Col_Sum')删除它。

内容的提问来源于stack exchange,提问作者Newbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:54:55