亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我只需要按“日期”的月份和日期部分分組,并獲得每個組的最大值和最小值

我只需要按“日期”的月份和日期部分分組,并獲得每個組的最大值和最小值

Go
翻閱古今 2021-12-21 15:02:25
我有一個大數據框。我有 2005 年到 2014 年的數據。這是我的數據框的 head():             ID       Date Element  Data_Value2   USC00087020 2005-12-06    TMAX         2725   USC00084095 2006-07-25    TMAX         3286   USC00084095 2011-07-26    TMAX         3337   USC00088841 2008-10-26    TMAX         29412  USC00085667 2015-10-07    TMAX         30014  USC00087760 2013-04-02    TMAX         32215  USR0000FCHE 2010-05-26    TMAX         31116  USC00088841 2007-12-27    TMAX         256無論年份如何,我都需要按月和日分組。我使用了以下代碼:df.groupby(pd.Grouper(key='Date',freq='M')).agg({'Data_Value':np.max})得到了這樣的結果:            Data_ValueDate                  2005-01-31         2942005-02-28         3002005-03-31         3442005-04-30         3222005-05-31         3672005-06-30         3832005-07-31         3722005-08-31         361但我需要以下格式。所以我可以取所有年份每個月的最大值和最小值:Date    Data_ValueJan     217Feb     240Mar     228Apr     190May     250我怎樣才能實現它?請幫忙。提前致謝
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

使用pandas.to_datetime:


import pandas as pd


df['Date'] = pd.to_datetime(df['Date'])

df.groupby(df['Date'].dt.month)['Data_Value'].max()


Date

4     322

5     311

7     333

10    300

12    272


查看完整回答
反對 回復 2021-12-21
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

您可以先使用 將日期列轉換回日期格式to_datetime,然后groupby使用該列只選擇月份


df.Date=pd.to_datetime(df.Date)


df.groupby(df.Date.dt.strftime('%B')).Data_Value.max()

Out[290]: 

Date

April       322

December    272

July        333

May         311

October     300

Name: Data_Value, dtype: int64


查看完整回答
反對 回復 2021-12-21
  • 2 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號