博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python批量处理气象站点降雨数据1——拆分站点数据操作
阅读量:5747 次
发布时间:2019-06-18

本文共 2521 字,大约阅读时间需要 8 分钟。

1、如图为所有站点数据,现在需要将该数据处理成按照年份拆分成每年的数据文件。

代码如下:

2、经过上述代码运行,得到数据列表。具体代码如下:

1 import os 2 import pandas as pd 3 import datetime 4 import csv 5  6 def to_date(year,month,day=1): 7     '''[summary] 8      9     [description]10     11     Arguments:12         year {[type]} -- [年份]13         month {[type]} -- [月份]14     15     Keyword Arguments:16         day {number} -- [天] (default: {1})17     18     Returns:19         [type] -- [返回日期字符串,格式为mm/dd/yy]20     '''21     date=datetime.datetime(int(year),int(month),int(day))22     return date.strftime("%Y/%m/%d")23 def re_DataFrame(df):24     '''[summary]25     26     [description]27     28     Arguments:29         df {[type]} -- [数据]30     Returns:31         返回的数据是list,list[0]是转换之后的日期,list[1]是数据值32     '''33     dates=[]34     rows_size=len(df)35     for row_index in range(rows_size):36         row=df.iloc[row_index]37         dates.append(to_date(row[df.columns[0]],row[df.columns[1]]))38     return [dates,df.iloc[:,-1].tolist()]    39 def main():40     os.chdir(out_dir)41     if os.path.exists(out_dir)==False:42         os.makedirs(out_dir)43     _,extension=os.path.splitext(data_path)44     #判断是csv文件还是excel文件45     if extension=='.csv':46         table=pd.read_csv(data_path,header=0)47         48     elif extension=='.xlsx':49         xlsx = pd.ExcelFile(data_path)50         print(xlsx.sheet_names)51         table = pd.read_excel(xlsx, xlsx.sheet_names[0])52     else:53         print("既不是csv文件也不是excel文件")54         return 055     #获取列名56     columns_list=[name for name in table.columns]57     #从站点列开始遍历生成每个站点文件58     for name in columns_list[2:]:59         print(name)60         #新建一个DataPrame文件61         df=pd.DataFrame()62         df[columns_list[0]]=table.iloc[:,0]63         df[columns_list[1]]=table.iloc[:,1]64         df[name]=table[name]65         #改变数据样式,存储在list中,第一列是日期,第二列是数据值66         data_result=re_DataFrame(df)67         #写站点文件68         with open(str(name)+'.csv','w',newline="") as csv_writer:69             csv_writer=csv.writer(csv_writer)70             csv_writer.writerow([name,''])71             for row_index in range(len(data_result[0])):72                 csv_writer.writerow([data_result[0][row_index],data_result[1][row_index]])73 74         # df.to_csv(name+'.csv',index=False)75         # del df76 77 78 if __name__=="__main__":79     #原始数据文件80     data_path=r'E:\rainfull\trh40rainfullhebing.xlsx'81     #输出结果目录82     out_dir=r'E:\rainfull\rainfulltrh40'83 84     main()

 

转载于:https://www.cnblogs.com/xzxgiser/p/10446965.html

你可能感兴趣的文章
Bootstrap3.0学习第三轮(栅格系统案例)
查看>>
HTML5商城开发一 楼层滚动加载数据
查看>>
ProxmoxVE 之 从debian拷贝数据到移动硬盘(USB口)
查看>>
POJ 3526 The Teacher’s Side of Math 题解《挑战程序设计竞赛》
查看>>
Use Hibernate4 native API
查看>>
我的友情链接
查看>>
springCloud(1):微服务简介
查看>>
Delphi 与 DirectX 之 DelphiX(38): TDIB.Filter();
查看>>
VTP各个版本的区别
查看>>
python生产者消费者模型
查看>>
初识Linux工作环境
查看>>
cocos2dx 适合初学者的学习笔记【二】
查看>>
PHP正则获取字符串中数字
查看>>
azure存储压测的问题(农码主观意识太强被坑了)
查看>>
Android Activity生命周期
查看>>
解决ScrollView中嵌套 listView只显示1行的问题
查看>>
centos7配置iptables
查看>>
jQuery剥皮三- data、proxy、event
查看>>
MonGo---安装及其基本操作
查看>>
Nagios 监控实例部署
查看>>