第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算 pandas 中的 OHLC 數(shù)據(jù)

計算 pandas 中的 OHLC 數(shù)據(jù)

慕工程0101907 2023-07-05 15:27:26
我有一個 CSV 文件:_id,ltp,volume,time5f4dde2e9f742701e3d9a15c,214.55,29077675,2020-09-01T11:07:50.000Z5f4dde2f9f742701e3d9a15d,214.55,29077690,2020-09-01T11:07:50.000Z5f4dde2f9f742701e3d9a15e,214.65,29077690,2020-09-01T11:07:51.000Z5f4dde309f742701e3d9a15f,214.65,29077900,2020-09-01T11:07:51.000Z5f4dde309f742701e3d9a160,214.6,29077900,2020-09-01T11:07:52.000Z5f4dde319f742701e3d9a161,214.7,29078191,2020-09-01T11:07:53.000Z5f4dde329f742701e3d9a162,214.6,29078769,2020-09-01T11:07:54.000Z5f4dde339f742701e3d9a163,214.65,29078832,2020-09-01T11:07:55.000Z我需要OHLC根據(jù)給定時間間隔的數(shù)據(jù)計算 。open是區(qū)間中的第一個元素,high是最大值,low是最小值,close是最后一個。這是通過以下類似的代碼實(shí)現(xiàn)的:data = df.resample('1T').agg({'ltp': ['first', 'max', 'min', 'last'], 'volume': 'sum'})問題 1:我無法將 open、high、low、close 列與上面的代碼分開,它位于“l(fā)tp”列內(nèi)。為了訪問open我需要寫data['ltp']['first']。(不過這是一個小問題,可以忽略)問題2:主要問題是當(dāng)前計算時volume我有sum,但實(shí)際上我想要實(shí)現(xiàn)的是這個,例如volumeat 10:01:00is100和at is10:02:00所以200該時間范圍的總體積是200-100 = 100,我怎樣才能實(shí)現(xiàn)這個?
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗 獲得超5個贊

對于第一個問題,您只需重命名列或刪除一個級別。對于第二個問題,取第一個和最后一個并計算差異:


df = pd.DataFrame([["5f4dde2e9f742701e3d9a15c",214.55,29077675,"2020-09-01T11:07:50.000Z"],

["5f4dde2f9f742701e3d9a15d",214.55,29077690,"2020-09-01T11:07:50.000Z"],

["5f4dde2f9f742701e3d9a15e",214.65,29077690,"2020-09-01T11:07:51.000Z"],

["5f4dde309f742701e3d9a15f",214.65,29077900,"2020-09-01T11:07:51.000Z"],

["5f4dde309f742701e3d9a160",214.6,29077900,"2020-09-01T11:07:52.000Z"],

["5f4dde319f742701e3d9a161",214.7,29078191,"2020-09-01T11:07:53.000Z"],

["5f4dde329f742701e3d9a162",214.6,29078769,"2020-09-01T11:07:54.000Z"],

["5f4dde339f742701e3d9a163",214.65,29078832,"2020-09-01T11:07:55.000Z"]], columns = ["_id","ltp","volume","time"])


df["time"] = pd.to_datetime(df["time"])

df = df.set_index("time")

data = df.resample('1S').agg({'ltp': ['first', 'max', 'min', 'last'], 'volume': ['first','last']})


data.columns = ["_".join(x) for x in data.columns.ravel()]

data["volumne_metric"] = data["volume_last"]-data["volume_first"]

輸出:


                         ltp_first  ltp_max ltp_min ltp_last volume_first volume_last volumne_metric

time                            

2020-09-01 11:07:50+00:00   214.55  214.55  214.55  214.55  29077675    29077690    15

2020-09-01 11:07:51+00:00   214.65  214.65  214.65  214.65  29077690    29077900    210

2020-09-01 11:07:52+00:00   214.60  214.60  214.60  214.60  29077900    29077900    0

2020-09-01 11:07:53+00:00   214.70  214.70  214.70  214.70  29078191    29078191    0

2020-09-01 11:07:54+00:00   214.60  214.60  214.60  214.60  29078769    29078769    0

2020-09-01 11:07:55+00:00   214.65  214.65  214.65  214.65  29078832    29078832    0



查看完整回答
反對 回復(fù) 2023-07-05
  • 1 回答
  • 0 關(guān)注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號