[英]Calendar pivot table pandas keyerror
我每天都有一個時間序列的值,所以,像這樣
date value
2020-01-01 50000
2020-01-02 50130
...
2020-10-18 48763
'date' 列用作索引並在導入 csv 時進行解析
我想使用熊貓將這些值放入這樣的數據透視表中
2018 2019 2020
------------------------------
jan 50000 32420 21488
feb 48237 38240 98783
mar 51682 21984 21984
apr 49956 14878 14847
其中按月/年的數據按指定月份中所取值的總和聚合我正在使用庫熊貓和日歷以及函數 .pivot_table
查看他們在本指南中的建議,作者使用這些代碼行
import calendar
all_month_year_df = pd.pivot_table(df, values="Open",
index=["month"],
columns=["year"],
fill_value=0,
margins=True)
named_index = [[calendar.month_abbr[i] if isinstance(i, int) else i for i in
list(all_month_year_df.index)]] # name months
all_month_year_df = all_month_year_df.set_index(named_index)
all_month_year_df
但我得到的只是“月”的 KeyError,我不知道是什么原因
你能幫我找出原因嗎? 這段代碼哪里錯了? 在 ubuntu 20.04 上使用帶有 vscode 的 python 3.8.3 64 位,這個信息有幫助
謝謝
您的輸入數據框只有兩列、數據和值。
您需要為月份和年份放入兩列。
就像是
df['month'] = df['date'].dt.month
df['year'] = df['date'].dt.year
問題是您還沒有月份或年份列(您只有一個日期列),因此您需要首先根據日期列創建列,如下所示:
df['month'] = df.date.dt.month
df['year'] = df.date.dt.year
這行不通,因為您使用“日期”列作為索引,因此這不會解決您的問題..只需用此替換索引和列
index=[df.index.month], columns=[df.index.year]
並且由於您尚未清理數據集使用
margins=False
這肯定會起作用,而且它也太短了,無法制作新的月份和年份列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.