我刚遇到这个问题,我有一些带有.pvsyst 扩展名的天气文件(你可以在下面看到文件的头部),我发现只使用熊猫更容易。
首先,将文件的扩展名更改为.csv,然后打开文件并检查它是否有任何 cmets 或 info 行。就我而言,文件以许多注释行开头,还有一行包含有关单位的信息:
#TMY hourly data
#Standard format for importing hourly data in PVsyst
#Created from EnergyPlus Weather Converter version=2022.04.01
#WMO=105130Data Source=Custom-105130
#Site,Koln.Bonn.AP
#Country,DEU
#Data Source,Custom-105130 WMO=105130
#Time step,Hour
#Latitude,50.864
#Longitude,7.158
#Altitude,100
#Time Zone,1.00
Year,Month,Day,Hour,Minute,GHI,DHI,DNI,Tamb,WindVel,WindDir
,,,,,W/m2,W/m2,W/m2,deg.C,m/sec,�
2059,1,1,1,30,0,0,0,0.000,1.00,21
2059,1,1,2,30,0,0,0,0.000,1.00,120
这意味着我需要告诉 pandas 以 # 开头的行是 cmets,然后删除第一个索引:
df = pd.read_csv('weather.csv', comment='#')
print(df.head())
df = df.drop(0)
print(df.head())
输出:
Year Month Day Hour Minute GHI DHI DNI Tamb WindVel WindDir
0 NaN NaN NaN NaN NaN W/m2 W/m2 W/m2 deg.C m/sec �
1 2059.0 1.0 1.0 1.0 30.0 0 0 0 8.000 3.00 250
2 2059.0 1.0 1.0 2.0 30.0 0 0 0 8.000 4.00 260
3 2059.0 1.0 1.0 3.0 30.0 0 0 0 8.000 4.00 240
4 2059.0 1.0 1.0 4.0 30.0 0 0 0 8.000 4.00 240
Year Month Day Hour Minute GHI DHI DNI Tamb WindVel WindDir
1 2059.0 1.0 1.0 1.0 30.0 0 0 0 8.000 3.00 250
2 2059.0 1.0 1.0 2.0 30.0 0 0 0 8.000 4.00 260
3 2059.0 1.0 1.0 3.0 30.0 0 0 0 8.000 4.00 240
4 2059.0 1.0 1.0 4.0 30.0 0 0 0 8.000 4.00 240
5 2059.0 1.0 1.0 5.0 30.0 0 0 0 8.000 4.00 240