Python pandas为DataFrame添加行求和Total列问题求助
解决Python pandas计算CSV每行总和并添加Total列的问题
嘿,刚看了你的代码和需求,咱们来一步步把问题解决掉~
你的代码里的两个核心问题
- read_csv参数错误:你给
pd.read_csv()传了'rb'参数,但pandas的这个函数默认会以文本模式读取CSV,不需要二进制模式的参数,这个多余的参数会直接导致代码报错。 - 每行求和逻辑错误:你用
[wine[row].sum(axis=1) for row in wine]的时候,遍历wine其实是在遍历DataFrame的列名,而不是行,这样的写法完全达不到按行求和的目的。
修正后的完整代码
import pandas as pd # 正确读取CSV文件,移除多余的'rb'参数 wine = pd.read_csv('testelek.csv', delimiter=';') # 直接按行计算总和,赋值给新的Total列 wine['Total'] = wine.sum(axis=1) # 查看结果(可选) print(wine)
额外提示:处理非数值列
如果你的CSV里存在非数值类型的列(比如第一列是行编号这类文本/标识列),可以指定只对数值型列求和,避免把非数值内容算进去:
import pandas as pd wine = pd.read_csv('testelek.csv', delimiter=';') # 只选择数值型列进行求和 wine['Total'] = wine.select_dtypes(include=['number']).sum(axis=1)
这样运行后,你就能得到带有Total列的DataFrame,完全符合你期望的格式啦~
内容的提问来源于stack exchange,提问作者szaller
相关产品推荐
相关产品推荐

