[問題] DataFrame 可以指定資料平均嗎?

看板Python作者 (喵的~~喵咪)時間3年前 (2020/07/07 12:17), 3年前編輯推噓4(402)
留言6則, 3人參與, 3年前最新討論串1/1
例如我有以下資料 日期 地區 銷售額 2019-9 台北 100 2019-10 台北 101 2019-11 台北 102 2019-9 台中 111 2019-10 台中 112 2019-11 台中 113 2019-12 台中 114 我知道可以用data.groupby(by='地區').mean().reset_index() 這樣取地區的平均 但是我希望抓取季的平均的話 可以指定的月份進行平均嗎 例如抓取2019-9 到 2019-11月三個月平均 目前我是用while進行月份判斷再抓取資料來平均 但是希望看能不能用dataframe的方法就可以解決了 請問有比較好的方式處理嗎? 感謝各位幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.65.108 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1594095475.A.66E.html

07/07 13:11, 3年前 , 1F
先依照你要的規則做一個col, 然後使用該col做group
07/07 13:11, 1F

07/07 14:07, 3年前 , 2F
07/07 14:07, 2F

07/07 19:57, 3年前 , 3F
將 date 設為 datetime index, 再用 groupyby([pd.Groupe
07/07 19:57, 3F

07/07 19:57, 3年前 , 4F
r(), '地區']) 處理
07/07 19:57, 4F
感謝三位的幫忙解答, 另外想請問,由於有可能有些資料是不夠一季的話 有辦法剔除嗎 日期 地區 銷售額 2019-9 台北 100 2019-10 台北 101 2019-9 台中 111 2019-10 台中 112 2019-11 台中 113 2019-12 台中 114 例如我想抓取2019-9到2019-11的每地區三個月平均 但是台北只有兩個月的資料,那這樣有辦法剔除台北, 只保留有夠三個月資料的地區用來抓取平均值嗎? 我是試著抓取count來嘗試,但是就不曉得如何用count的結果來剔除不需要的地區 df_count = df.groupby(['city']).size().reset_index(name='count') ※ 編輯: sutekidesune (180.217.197.185 臺灣), 07/07/2020 21:12:37

07/07 21:57, 3年前 , 5F
df.groupby('地區').filter(lambda x: x['銷售額'].count
07/07 21:57, 5F

07/07 21:57, 3年前 , 6F
> 2).groupby('地區')['銷售額'].mean()
07/07 21:57, 6F
感謝m大幫忙, 立刻來嘗試看看 謝謝 ※ 編輯: sutekidesune (180.217.197.185 臺灣), 07/07/2020 22:08:04 ※ 編輯: sutekidesune (180.217.197.185 臺灣), 07/07/2020 22:09:48 解決了 感謝m大 不過有個小地方有錯誤 filter(lambda x: x['銷售額'].count > 2) ^^^^^ 要改成size才能使用 ※ 編輯: sutekidesune (180.217.197.185 臺灣), 07/07/2020 22:49:04
文章代碼(AID): #1V0_TpPk (Python)