簡體   English   中英

如何將時間序列 dataframe 按月份分組,plot x 軸作為月份分組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM