问题描述
我有一个收集空气质量数据的树莓派,我希望将其使用Flask推送到Web服务器。我的问题在于我最初构造文本文件来存储数据的方式-如下:
> (Sun Aug 9 08:59:05 2020,PM1.0 ug/m3 (ultrafine particles):
> 20 PM2.5 ug/m3 (combustion particles,organic compounds,Metals): 30
> PM10 ug/m3 (dust,pollen,mould spores): 32
> PM1.0 ug/m3 (atmos env): 19
> PM2.5 ug/m3 (atmos env): 29 PM10
> ug/m3 (atmos env): 32
> >0.3um in 0.1L air: 3990
> >0.5um in 0.1L air: 1089
> >1.0um in 0.1L air: 180
> >2.5um in 0.1L air: 10
> >5.0um in 0.1L air: 2
> >10um in 0.1L air: 0 ),(Sun Aug 9 09:00:06 2020,PM1.0 ug/m3 (ultrafine particles):
> 21 PM2.5 ug/m3 (combustion particles,Metals): 31
> PM10 ug/m3 (dust,mould spores): 33
> PM1.0 ug/m3 (atmos env): 20
> PM2.5 ug/m3 (atmos env): 30 PM10
> ug/m3 (atmos env): 33
> >0.3um in 0.1L air: 3990
> >0.5um in 0.1L air: 1089
> >1.0um in 0.1L air: 180
> >2.5um in 0.1L air: 10
> >5.0um in 0.1L air: 2
> >10um in 0.1L air: 0 ),(Sun Aug 9 09:01:06 2020,
如您所见,数据可能不是出于我的意图而构建的,下面显示了我使用Pandas所做的工作,希望可以使用matplotlib提供数据可视化。
sample_data = pd.read_fwf('particulates.txt',header=None)
我一直在尝试找出整理数据的最佳方法,以便:
- 日期,显示在每个新记录的第一列上,并且是 用'分隔的'可以用作我的x轴。
- 每个其他数据点-例如“ PM1.0 ug / m3(超细颗粒):”可以组合在一起以形成相关数据图。
我正在寻找实现此目标的最佳方法的指针,而不是解决方案本身。我考虑的一种方法是使用繁重的字符串操作和模数运算,因为每条记录中的数据正好有14行,因此将其移至sql数据库,但是,毫无疑问,这可以使用Pandas来实现。
任何指针将不胜感激,并感谢您的宝贵时间。
解决方法
尝试一下:
sample_data = pd.read_csv('particulates.txt',sep=':')
,
很抱歉,我无法发表评论,但是gtomer回答了您的问题,因此请给他功劳。您的数据已经结构化,可以在matplotlib中使用。
如果要将日期用作x维度,请使用以下代码:
sample_data.set_index(['date'])
之后,只需使用:
sample_data.plot(subplots = True)
plt.show()