如何使用Python对CSV文件的totalFare列乘100实现美元转美分
Python处理CSV转换totalFare单位实现方案
以下提供两种可直接运行的实现方案,你可以根据自己的需求选择:
方式1:使用Python内置csv模块(无需额外安装依赖)
这个方案不需要安装任何第三方库,Python环境自带相关能力,适合初学者直接使用:
import csv # 这里替换为你实际的文件路径 input_csv_path = "你的原文件路径.csv" output_csv_path = "转换后的文件路径.csv" with open(input_csv_path, 'r', newline='', encoding='utf-8') as in_f, \ open(output_csv_path, 'w', newline='', encoding='utf-8') as out_f: # 按表头读取每行数据,方便按列名取值 reader = csv.DictReader(in_f) writer = csv.DictWriter(out_f, fieldnames=reader.fieldnames) # 写入原表头 writer.writeheader() for row in reader: # 转换单位:美元转美分 usd_value = float(row['totalFare']) cent_value = usd_value * 100 # 如果对接的API要求美分为整数类型,把下面这行改为row['totalFare'] = int(round(cent_value))即可 row['totalFare'] = cent_value writer.writerow(row)
方式2:使用pandas(代码更简洁)
如果后续有更多数据处理需求,可以用pandas实现,只需要3行核心代码,使用前先运行pip install pandas安装依赖:
import pandas as pd # 读取原CSV文件 df = pd.read_csv("你的原文件路径.csv") # 转换totalFare单位为美分 df['totalFare'] = df['totalFare'] * 100 # 如果需要整数类型就加上这行:df['totalFare'] = df['totalFare'].round().astype(int) # 保存为新文件,index=False表示不保留pandas自动生成的行号 df.to_csv("转换后的文件路径.csv", index=False)
注意事项
- 运行代码前请替换代码里的文件路径为你本地实际的CSV文件路径
- 代码会生成新的转换后文件,不会修改原文件,避免数据丢失,建议核对转换结果后再对接API
- 如果遇到浮点数精度问题(比如0.67*100变成66.99999999999999),用round()函数取整即可解决
内容的提问来源于stack exchange,提问作者Omar Solieman
相关产品推荐
相关产品推荐

