本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
本篇文章来自腾讯云 作者:郭好奇同学
( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )
对于我们下载的多数数据集,我们可能需要提取其中指定的来使用,比如这个空气质量数据集,全国那么多站点,我只想要我研究的区域的站点数据,然而,当我打开文件夹的时候,失望了,因为这些数据都是一个一个的csv文件。有一个方法就是excel可以用脚本把这些单独的csv合并为一个csv,但可能伴随的问题就是数据超出excel的存储上限,so,我们换一种做法提取指定站点的数据。
这次实验用到的数据是全国2014-2020年的站点空气质量数据,每小时的分辨率的,截图看看长什么样子:
要是一个一个的打开去提取自己需要的,那会疯掉的,So,上神器–Python来完成这次实验操作
targets就是你指定的想提取的站点,想提取谁就指定谁,就输入谁的站点代号就可以啦,整体代码如下:
import os
import pandas as pd# 定义相关参数
dataPath = './data' # 数据目录
targets = ['1001A','1002A','1003A','1004A','1005A','1006A','1007A','1008A'] # 目标站点
result = [[] for i in range(len(targets))] # 用于保存结果# 开始遍历
for filepath in os.listdir(dataPath): # 遍历每个文件夹for filename in os.listdir('%s/%s'%(dataPath,filepath)):if dswith('.csv'): # 去重非csv数据文件continuedata = pd.read_csv('%s/%s/%s'%(dataPath,filepath,filename))for i in range(0,len(data),15):for k in range(len(targets)):try:item = {'date':data['date'][i], # 日期'hour':data['hour'][i]} # 小时for j in range(i,i+15):item[data['type'][j]] = data[targets[k]][j]result[k].append(item)except:passprint('%s处理完毕'%filename)# 保存结果
for i in range(len(targets)):pd.DataFrame(result[i]).to_csv('%s.csv'%targets[i],index=False)
Run,启动就可以运行,结果输入是这几个站点的csv数据,里面包含了所记录的时间范围的所有要素(比如PM10之类的)的数据
本文发布于:2024-02-04 10:46:49,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170705407354885.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |