簡體   English   中英

如何使用MultiIndex Data Frame加入多個時間序列?

[英]How to join several time series with MultiIndex Data Frame?

我正在嘗試將多個時間序列數據幀合並為一個具有MultiIndex的非常大的數據幀。

假設我有這些DataFrame。

In [1]: dates = pd.DatetimeIndex(["2019-1-1", "2019-1-2", "2019-1-3"], name="Date")
In [2]: df_a = pd.DataFrame(np.random.randn(3, 2), columns=['Col1', 'Col2'], index=dates)
In [3]: df_b = pd.DataFrame(np.random.randn(3, 2), columns=['Col1', 'Col2'], index=dates)
In [4]: df_c = pd.DataFrame(np.random.randn(3, 2), columns=['Col1', 'Col2'], index=dates)
In [5]: df_a
Out[5]: 

                 Col1        Col2
      Date      
2019-01-01   1.317679   -1.201769
2019-01-02  -0.991833    0.626420
2019-01-03   0.549733    1.942215

現在,我為所需的數據框創建了腳手架。 看起來像這樣。

In [6]: stock_symbols = ["A", "B", "C"]
In [7]: index = pd.MultiIndex.from_product([dates, stock_symbols], names=["Date", "Script"])
In [8]: df = pd.DataFrame(columns=['Col1', 'Col2'], index=index)
In [9]: df
Out[9]:

                     Col1   Col2
      Date  Script      
2019-01-01       A    NaN    NaN
                 B    NaN    NaN
                 C    NaN    NaN
2019-01-02       A    NaN    NaN
                 B    NaN    NaN
                 C    NaN    NaN
2019-01-03       A    NaN    NaN
                 B    NaN    NaN
                 C    NaN    NaN

如何向熊貓指定將df_a中的值附加到適當的索引位置? 我認為我必須使用.join()但是由於Script的值不在DataFrames中出現,所以我不知道該怎么做。

請幫忙。

好的,所以目前我正在處理這段代碼。

idx = pd.IndexSlice
df.loc[idx[:, "A"], :] = df.loc[idx[:, "A"], :].fillna(df_a)
df.loc[idx[:, "B"], :] = df.loc[idx[:, "B"], :].fillna(df_b)
df.loc[idx[:, "C"], :] = df.loc[idx[:, "C"], :].fillna(df_c)

如果有人有更好的方法來做...我全都聽!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM