如何从不同的文件中读取列并进行绘图?

时间:2019-08-03 14:39:21

标签: python python-3.x pandas plot

我有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
...

我想将timemean_OMNO2d_003_ColumnAmountNO2CloudScreenedOMNO2d_003_ColumnAmountNO2TropCloudScreenedOMSO2e_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"]])

我该如何解决问题?

1 个答案:

答案 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)

这需要针对您的特定数据帧进行一些调整,但是我希望您明白我的意思!