我已经对这个话题进行了很多搜索,到目前为止已经学到了很多东西。我还是python的新手,我知道有一种简单的方法可以用csv模块解析数据。所以,我的数据看起来像这样:
Date MaxT MinT Pcpn Snow Snwg
01/01/1948 34 13 0.00 0.0 T
01/02/1948 46 29 0.01 0.0 T
01/03/1948 38 16 T T T
01/04/1948 38 15 0.00 0.0 T
01/05/1948 44 15 0.00 0.0 T
01/06/1948 42 23 0.00 0.0 T
这是一年中每天的每日天气数据,直到记录结束。大多数时候,记录的结尾是现在。我可以解析它并从中提取数据,但我的主要问题和问题的原因是如何根据具体日期提取和保存数据?
例如,如果我想要记录中所有年份中4月25日发生的最高温度及其发生的年份,我究竟如何隔离特定日期并仅使用max()或min()那一天,不是一年中的所有日子?我希望我的程序搜索一年中的每个日期,并查找每个日期的最大值和最小值以及它发生的年份,并保存它们以供以后使用。
最终,我想获得每个位置的最高和最低maxT和minT(最高maxT,最低minT,最高minT,最低minT),每个值发生的年份,并将特定日期组合在一起。这样,我有一个包含位置的所有365天的文件和每个发生的年份的4个极值。我可以处理这些位置并创建新文件,但是现在,我需要弄清楚如何获得一年中每一天的极端情况。
完成所有操作后,我的输出标题应如下所示,并且每年的每一天都有一个文件:
Location HighMax year LowMax year HighMin year LowMin year
答案 0 :(得分:0)
尝试pandas:
test.csv:
Date,MaxT,MinT,Pcpn,Snow,Snwg
01/01/1948,34,13,0.00,0.0,T
01/02/1948,46,29,0.01,0.0,T
01/03/1948,38,16,T,T,T
01/04/1948,38,15,0.00,0.0,T
01/05/1948,44,15,0.00,0.0,T
01/06/1948,42,23,0.00,0.0,T
阅读csv,将Date
设为索引
In [1]: import pandas as pd
In [4]: df = pd.read_csv('test.csv').set_index('Date')
In [5]: df
Out[5]:
MaxT MinT Pcpn Snow Snwg
Date
01/01/1948 34 13 0.00 0.0 T
01/02/1948 46 29 0.01 0.0 T
01/03/1948 38 16 T T T
01/04/1948 38 15 0.00 0.0 T
01/05/1948 44 15 0.00 0.0 T
01/06/1948 42 23 0.00 0.0 T
Pandas
提供了一个很好的结构DataFrame
来操纵您的数据。例如,要获得最大MaxT
:
In [9]: index = df['MaxT'].idxmax()
In [11]: index, df['MaxT'][index]
Out[11]: ('01/02/1948', 46)
学习pandas
需要一些时间。
如果您的工作在这些数据上非常可靠,那么值得学习。