使用 merge_asof() 建立資料集
merge_asof() 可以用在這種情境:你手上有包含起訖日期的資料表,並想用它們在另一個資料表中建立旗標欄位。這裡提供給你 gdp,它是 1980 年代美國的季度 GDP 資料表。此外,你也有 recession 資料表,其中包含自 1980 年以來每次美國經濟衰退的開始日期,以及被宣告結束的日期。請使用 merge_asof() 合併這兩個資料表,並建立狀態旗標,判斷某一季是否位於衰退期間。最後,為了檢查結果,請用長條圖將資料視覺化。
gdp 與 recession 這兩個資料表都已為你載入。
本練習屬於課程
使用 pandas 進行資料表連接
練習說明
- 使用
merge_asof(),在date欄位上合併gdp與recession,其中左表為gdp。將結果儲存到變數gdp_recession。 - 使用串列生成式與條件運算式建立名為
is_recession的list:對於每一列,若gdp_recession['econ_status']等於 'recession',則放入'r',否則放入'g'。 - 使用
gdp_recession,繪製gdp相對於date的長條圖,並將color參數設定為is_recession。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Merge gdp and recession on date using merge_asof()
gdp_recession = ____
# Create a list based on the row value of gdp_recession['econ_status']
is_recession = ['____' if s=='recession' else '____' for s in gdp_recession['econ_status']]
# Plot a bar chart of gdp_recession
gdp_recession.plot(kind=____, y=____, x=____, color=____, rot=90)
plt.show()