首页 > 解决方案 > 如何从不同的文件中读取列并绘图?

问题描述

我有从 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_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"]])

我该如何解决这个问题?

标签: pythonpython-3.xpandasplot

解决方案


这是非常可行的。我在一个情节中遇到了 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)

这需要针对您的特定数据框进行一些调整,但我希望您能看到我的意思!


推荐阅读