簡體   English   中英

python - 使用 pandas 的列表字典

[英]python - Dict of Dict of List using pandas

我想將 pandas DataFrame 分組如下。 帶有股票的字典,每只股票都有自己的字典來捕獲日期和時間戳。 這些條目中的每一個都將具有該時期的 OHLC 值。 由於這是在實時市場中運行的,因此日期和時間戳需要是一個字典才能重新更新值。 由於最初的 DataFrame 有大約 100,000 個條目,因此手動創建 Dict of List 的 Dict 需要 30 多秒。

Stock(Dict)     Day(Dict)               Open, High, Low, Close(List)    
A1              2023-01-01 09:15:00     100, 102, 99, 101
                2023-01-02 09:15:20     100, 102, 99, 101
B1              2023-01-01 09:15:00     100, 102, 99, 101
                2023-01-02 09:20:00     100, 102, 99, 101

我能夠創建 Dict of Dicts,但只能從 Open、High、Low、Close 中填充一個值

g = df_symbols_all.set_index('day').groupby('symbol').apply(lambda x: x.high.to_dict()).to_dict()

在此處輸入圖像描述

如果我嘗試傳遞所有值,它不會創建日期和時間戳字典。

k= df_symbols_all.set_index('day').groupby('symbol').apply(lambda x: (x.open.to_dict(), x.high.to_dict(), x.low.to_dict(), x.close.to_dict())).to_dict()

在此處輸入圖像描述

任何幫助將不勝感激,謝謝。

您可以創建一個新列,將 ('open', 'close','high','low') 組合成一個列(這可以快速執行):

df_symbols_all['open_high_low_close'] = df_symbols_all[['open','close','high','low']].values.tolist()

然后按照您的建議執行分組

g = df_symbols_all.set_index('day').groupby('symbol').apply(lambda x: x.open_high_low_close.to_dict()).to_dict()

暫無
暫無

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

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