所以我想這個問題很簡單,但我無法找到答案。我想要做的是運行PanelOLS庫存數據。爲此,我導入兩張表格,一張帶有股票的每週回報,另一張帶有谷歌趨勢的每週搜索頻率,並將它們連接成一個「主數據框」。然後我循環這個操作x次,這樣我的「主數據框」中就有多個不同的股票。這看起來是這樣的:在Dataframe上創建多索引來執行PanelOLS
Open Close Ticker log(weekly returns) Search Frequency
2016-01-09 34.84 28.04 ACAD -0.22 25.0
2016-01-16 28.46 23.78 ACAD -0.18 26.0
2016-01-09 24.49 24.52 ABBB 0.00 24.0
2016-01-16 24.11 20.69 ABBB -0.15 26.0
現在我需要創造超過日期和股票,以運行迴歸一個多指標,但它並沒有對它進行排序的方式應該,因此我得到的錯誤:
NotImplementedError: Only 2-level MultiIndex are supported.
當我包括:
for stock in stocklist:
stock_detail_df = pd.read_csv(path, index_col=0, parse_dates=True)
trend_df = pd.read_csv(path2, index_col=0, parse_dates=True)
complete_df = pd.concat([stock_detail_df, trend_df], axis=1)
master_df = master_df.append(complete_df)
master_df.reset_index(level=0, inplace=True)
master_df['Date'] = master_df['index']
master_df = master_df.drop(['index'], 1)
master_df.set_index(['Date', 'Ticker'], inplace=True)
我得到的是:
Open Close log(weekly returns) Search Frequency
Date Ticker
2016-01-09 ACAD 34.84 28.04 -0.22 25.0
2016-01-16 ACAD 28.46 23.78 -0.18 26.0
2016-01-23 ACAD 24.49 24.52 0.00 24.0
2016-01-30 ACAD 24.11 20.69 -0.15 26.0
雖然如果我交換'Date'和'Ticker',它確實創建了一個multiindex,看起來像這樣,但這並不能幫助我執行迴歸(我有還試圖用index.swaplevel(0,1),但只是返回上面的表):
Open Close log(weekly returns) Search Frequency
Ticker Date
ACAD 2016-01-09 34.84 28.04 -0.22 25.0
2016-01-16 28.46 23.78 -0.18 26.0
2016-01-23 24.49 24.52 0.00 24.0
2016-01-30 24.11 20.69 -0.15 26.0
在任何情況下,最終產品應如下所示:
Open Close log(weekly returns) Search Frequency
Date Ticker
2016-01-09 ACAD 34.84 28.04 -0.22 25.0
ABBB 10.21 11.05 -0.18 26.0
2016-01-16 ACAD 24.49 24.52 0.00 24.0
ABBB 11.05 15.07 -0.15 26.0
我將如果需要的話,也可以發佈完整的代碼,但是有相當多的問題與問題無關,我不想包含e不必要的代碼。而且由於我能夠創建一個多索引(只是順序錯誤),我想有一個簡單的解決方案,我沒有看到。我使用Python 2.7版和熊貓18.1
這與加就地=真在.set_index工作開始,非常感謝! –
這是正確的,上面的聲明是直接打印出來的。很高興這是有幫助的! – Stefan