Python如何仅将代码计算得到的结果输出保存到CSV文件
Pandas导出CSV仅保留计算结果列解决方案
出现该问题的原因是pandas.DataFrame.to_csv()方法默认会导出DataFrame内的所有列,你做计算时是在读取原始CSV得到的df基础上新增计算列,原始数据列仍保留在df中,因此导出时会一同输出。
你可以任选以下两种方式修改代码实现需求:
- 方式一:导出时直接指定需要保留的列,无需修改原有df,改动最小
import pandas as pd df = pd.read_csv('DAQ4.csv') df['furnace_power'] = df['furnace_voltage']*df['furnace_current']*0.52 #计算熔炉功率 df['heat_pump_power'] = (df['pump_current']*230)*0.62 #计算热泵功率 # 通过columns参数指定仅导出目标列,index=False用于取消默认导出的行索引列,不需要行索引可以保留该参数 df.to_csv('DAQsol.csv', columns=['furnace_power', 'heat_pump_power'], index=False)
注:你原有代码中
with open创建文件的逻辑是冗余的,df.to_csv会自动创建目标CSV文件,无需额外提前打开。
- 方式二:单独构造仅存储计算结果的DataFrame再导出,适合后续还要对结果做其他处理的场景
import pandas as pd df = pd.read_csv('DAQ4.csv') # 新建空df存储计算结果 result_df = pd.DataFrame() result_df['furnace_power'] = df['furnace_voltage']*df['furnace_current']*0.52 result_df['heat_pump_power'] = (df['pump_current']*230)*0.62 result_df.to_csv('DAQsol.csv', index=False)
内容的提问来源于stack exchange,提问作者Rookie 18
相关产品推荐
相关产品推荐

