如何使用pandas或csv库对CSV文件指定单元格执行数学运算并更新值
pandas修改CSV指定单元格数值的实现方案
现有代码问题说明
- 读入文件后立刻执行
to_csv逻辑错误,应该修改完数据后再回写文件 - 没有对原有单元格数值做运算,直接赋值会覆盖原值
loc索引为先行后列的顺序,如果要按数字序号定位行列,用iloc更适配需求
正确实现代码
以「第4行第5列单元格值加50」的需求为例,pandas默认行、列索引均从0开始计数,对应目标行索引为3、目标列索引为4:
import pandas as pd # 读入CSV文件 equations_reader = pd.read_csv("bank.csv") # 指定目标位置和运算值 target_row = 3 target_col = 4 add_num = 50 # 执行运算更新单元格 equations_reader.iloc[target_row, target_col] += add_num # 如果你是通过列名定位列,对应你的变量写法如下: # equations_reader.loc[bank_indexer_addbalance, "你的列名"] += reciever_amount # 回写修改后的内容到CSV equations_reader.to_csv("bank.csv", index=False)
注意事项
- 如果CSV没有表头,读入时需要添加
header=None参数,避免第一行数据被识别为表头 - 如果要匹配Excel可视行号(含表头行),pandas行索引需要对应减2,比如Excel第4行对应pandas数据行索引为2
- 运算前可先打印
equations_reader.iloc[target_row, target_col]校验原值是否正确
内容的提问来源于stack exchange,提问作者Dtimer
相关产品推荐
相关产品推荐

