我想合并兩個資料框以創建一個包含兩個變數的時間序列。
我有一個函式,它通過使用 itterows() 迭代每個資料幀來做到這一點......這非常慢,并且沒有利用 pandas 和 numpy 提供的矢量化......
你能幫忙嗎?
這段代碼說明了我正在嘗試做的事情:
a = pd.DataFrame(data={'timestamp':[1,2,5,6,10],'x':[2,6,3,4,2]})
b = pd.DataFrame(data={'timestamp':[2,3,4,10],'y':[3,1,2,1]})
#z = Magical line of code/function call here
#z output: {'timestamp':[1,2,3,4,5,6,10],'x':[2,6,6,6,3,4,2], 'y':[NaN,3,1,2,2,2,1] }
uj5u.com熱心網友回復:
這可以分為兩個步驟:
- 第一步相當于 SQL 中的外連接,其中創建一個包含兩個源表的鍵的表。這是用
merge(..., how="outer") - 第二個是用以前的非 NaN 值填充 NaN,這可以用
ffill
z = a.merge(b, on="timestamp", how="outer").sort_values("timestamp").ffill()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/478494.html
下一篇:在R中過濾資料框
