我有2005年到2018年每一天的浓度数据。我想读取三个不同文件的三列并将它们合并为一个,因此可以对其进行绘图。
数据:文件1
time, mean_OMNO2d_003_ColumnAmountNO2CloudScreened
2005-01-01,-1.267651e+30
2005-01-02,4.90778397e+15
...
2018-12-31,-1.267651e+30
数据:文件2
time, OMNO2d_003_ColumnAmountNO2TropCloudScreened
2005-01-01,-1.267651e+30
2005-01-02,3.07444147e+15
...
数据:文件3
time, OMSO2e_003_ColumnAmountSO2_PBL
2005-01-01,-1.267651e+30
2005-01-02,-0.0144000314
...
我想将time
和mean_OMNO2d_003_ColumnAmountNO2CloudScreened
,OMNO2d_003_ColumnAmountNO2TropCloudScreened
,OMSO2e_003_ColumnAmountSO2_PBL
绘制到一张图中。
import glob
import pandas as pd
file_list = glob.glob('*.csv')
no= []
no2=[]
so2=[]
for f in file_list:
df= pd.read_csv(f, skiprows=8, parse_dates =['time'], index_col ='time')
df.columns=['no','no2','so2']
no.append([df["no"]])
no2.append([df["no2"]])
so2.append([df["so2"]])
我该如何解决问题?
答案 0 :(得分:0)
这是非常可行的。我在一个情节中全部使用3个文件时遇到了类似的问题。我的理解是,您要比较NO,NO2和SO2的水平,每列的顺序可比,并且要跨行比较。如果您可以导入matplotlib和numpy,可以使用以下方法:
import numpy as np
import matplotlib as plt
NO = np.asarray(df["no1"])
NO2 = np.asarray(df["no2"]))
SO2 = np.asarray(df["so2"))
timestamp = np.asarray(df["your_time_stamp"])
plt.plot(timestamp, NO)
plt.plot(timestamp, NO2)
plt.plot(timestamp, SO2)
plt.savefig(name_of_plot)
这需要针对您的特定数据帧进行一些调整,但是我希望您明白我的意思!