问题描述
FY2E风云数据是半小时数据,1天应该有48个文件,但是下载下来后发现有个别天数缺失个别时刻文件。
如下图所示:
要做的是统计每一天都有哪些时刻有数据以及缺失的时刻。
例如:20140601,有数据的时刻:0000、0100、0200…;缺失的时刻:0030、0130…
最后将统计结果写入到py脚本目录下的fileNumberInfo.txt文件中,统计缺失时刻情况,将统计结果写入py脚本目录下的missingHourMin.xlsx
运行环境
操作系统:win 10
python版本:python 3.6
python需要安装的第三方库:pandas
解决思路
导入的包名如下:
import os #用于获取文件夹下所有文件
import pandas as pd #用于创建DataFrame数据框
import datetime #用于创建日期
from dateutil.relativedelta import relativedelta #用于创建日期序列
import re #用于分割文件名
from collections import Counter #用于列表元素计数
- 获取文件夹下所有文件
allFilesList = os.listdir(file1Path)
- 根据文件名截取文件的日期和时刻,创建DataFrame数据框
fileDateList = list(map(lambda filename: filename.split('_')[-2], allFilesList)) #获取所有文件的日期
# re.split(r'[\.,_]', filename)[-2],将filename用.和_分割,获取所有文件的HH:MM
fileHourMinlist = list(map(lambda filename: re.split(r'[\.,_]', filename)[-2], allFilesList))
date_hourMin_dict = {
'date':fileDateList, 'hourMin':fileHourMinlist} #创建字典
date_hourMin = pd.DataFrame(date_hourMin_dict) #创建所有文件的[date, hourMin]数据框
- 根据文件名截取文件日期的年份和月份,创建当月的日期列表
#创建该年该月从当月1日到月底的日期序列
def creatDateList(year, month