![](/img/trans.png)
[英]How to generate with scripting INTERVAL 1 <day|week|month>?
[英]How to group a time series dataframe by day of the month and plot the x axis as the day of the month?
我正在分析存储在 BigQuery 中的 NOAA 全球历史气候网络日报。 我想了解最高温度(一年中的同一天)是否逐年变化以了解气候变化(即“我们能否看到从 1970 年 8 月 25 日到 1980 年 8 月 25 日的温度略有上升”等等)。
我可以使用 BigQuery Colab 客户端很好地提取数据。
dfall = pd.DataFrame()
for i in range(1991,2010):
sql = "SELECT date, element, (value/10 * 1.8) + 32 as temp_f, extract(year from date) yearstring FROM `bigquery-public-data.ghcn_d.ghcnd_" + str(i) + "` where id = 'USC00040693' and DATE(date) bETWEEN DATE('" + str(i) + "-08-26') AND DATE('"+ str(i) + "-09-03') and (element = 'TMAX') order by date asc "
dfyear = client.query(sql).to_dataframe()
dfall = dfall.append(dfyear, ignore_index=True)
这将创建一个 dataframe,如下所示:
我试着像这样绘制它
dfall.set_index('date').plot()
尽管我只关注 15-20 天的特定时间段,但它每年都在显示它。 我希望能够只显示那些特定的日子。 所以就像九月的第一天(然后有很多年那天的所有酒吧),然后是第二天,等等。
如何在一年中的某一天或特定月份进行分组?
如果需要在 1.9 之间进行过滤。 到 20.9 为所有年份使用:
s = dfall.set_index('date')['temp_f']
s = s[(s.dt.month == 9) & s.dt.day.between(1,20)]
s.plot()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.