本科论文负荷曲线绘制:Pandas读取制表符分隔CSV的问题
解决方案:Pandas读取制表符分隔CSV并绘制负荷曲线
你的CSV文件存在两个关键特性需要在读取时配置:制表符作为字段分隔符、逗号作为小数点符号,默认的pd.read_csv()无法自动识别,修改读取代码即可解决:
修改后的核心读取逻辑
将原代码中的df = pd.read_csv(filename)替换为:
df = pd.read_csv( filename, sep='\t', # 指定制表符为列分隔符 decimal=',', # 识别逗号为小数点符号 usecols=[0] # 仅读取第一列,规避首行末尾多余逗号产生的空列 )
完整可运行代码
from oemof import solph import pandas as pd import matplotlib.pyplot as plt from oemof.tools import economics import numpy as np from oemof.tools import logger logger.define_logging() logger.info('Programm gestartet') filename = 'PV.csv' # 配置读取参数适配你的CSV格式 df = pd.read_csv( filename, sep='\t', decimal=',', usecols=[0] ) logger.info('Datei wurde eingelesen') ax = df.plot.area(subplots=True, figsize=(10,7)) ax[0].set_ylabel("Leistung in kW") ax[0].set_xlabel("Zeit in h") plt.title('power demand') plt.tight_layout() plt.show() logger.info('Programm beendet')
参数说明
sep='\t':明确指定制表符(\t)作为列之间的分隔符,替代Pandas默认的逗号分隔规则。decimal=',':适配欧洲地区的小数表示格式(用逗号代替点),确保所有数值能被正确解析为浮点数。usecols=[0]:由于你的CSV首行末尾存在多余逗号,会生成无效空列,该参数仅保留第一列的有效数据。
运行修改后的代码,即可正确读取数据并生成符合需求的负荷曲线图表。
内容的提问来源于stack exchange,提问作者Andy Fröhlich
相关产品推荐
相关产品推荐

