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

如何对DataFrame中指定行的数值求和并仅输出目标内容

如何对DataFrame中指定行的数值求和并仅输出目标内容

嗨,我看你现在的需求是只输出DataFrame和指定行(价格行)的数值总和,现有代码里有两个小问题导致结果不符合预期,我来帮你调整下:

首先说下现有代码的问题:

  • 你输入的价格是字符串类型,直接存到DataFrame里的话,sum方法会做字符串拼接(比如输入1和2会变成"12"),而不是数值相加
  • 用dd.sum(axis=1)会计算每一行的总和,包括OBJECTS行(这行是字符串,求和没有意义),而你只需要PRICE行的总和

接下来是修改后的代码,完全贴合你的需求:

import pandas as pd

# 初始化存储物品和价格的列表(别用list当变量名,会覆盖内置类型)
object_list = []
price_list = []

# 获取要输入的物品数量
item_count = input("ENTER THE NUMBER OF THINGS\n")
item_count = int(item_count)

# 收集物品名称输入
for _ in range(item_count):
    obj_name = input("OBJECTS\n")
    object_list.append(obj_name)

# 收集价格输入,同时转成整数(如果需要支持小数就换成float(price_input))
for _ in range(item_count):
    price_input = input("PRICE\n")
    price_list.append(int(price_input))

# 创建你需要的DataFrame结构
df = pd.DataFrame(
    [object_list, price_list],
    index=["OBJECTS", "PRICE"],
    columns=[str(i+1) for i in range(item_count)]
)

# 第一步:输出DataFrame
print(df)

# 第二步:只计算PRICE行的数值总和,直接取这一行求和
total_price = df.loc["PRICE"].sum()
# 按你要的格式输出总和
print(f"Total: {total_price}")

我来拆解下关键修改点:

  • 把输入的价格转成了整数类型,确保sum会做数值相加,而不是字符串拼接
  • 用df.loc["PRICE"].sum()精准获取价格行的总和,不会带上物品行的无效计算结果
  • 变量名换成了更清晰的名字,避免和Python内置的list冲突

举个实际运行的例子:
当你输入2作为物品数量,然后依次输入Object1、Object2作为物品,1、2作为价格时,输出会是:

1        2
OBJECTS  Object1  Object2
PRICE    1        2
Total: 3

完全符合你想要的只显示DataFrame和价格总和的需求~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 08:20:29