我正在嘗試將我的投資組合數字化。我有dataframe一段時間以來的每日股票收盤資訊(01-01-2020),我想添加一個列,顯示我持有的股票數量,例如01-01-2020,我的 APPL 為零,25-06-2020我有 2 和01-09-20211。
我還有一個dataframe可以跟蹤我的庫存變化時的余額(但不是中間的日期)。這個例子看起來像這樣;
Date Balance
25-06-2020 2
01-09-2021 1
我知道這
df['balance'] = 0會添加一個全為零的列,但如何根據日期添加條件?
總之,我有這個
Date Price
01-01-2020 $100
01-02-2020 $100
...
25-06-2020 $120
26-06-2020 $130
...
01-09-2021 $145
02-09-2021 $146
我想解決這個問題
Date Price Balance
01-01-2020 $100 0
01-02-2020 $100 0
...
25-06-2020 $120 2
26-06-2020 $130 2
...
01-09-2021 $145 1
02-09-2021 $146 1
uj5u.com熱心網友回復:
如果可能,指定Balance字典中的第一個值可以Series.map與前向填充缺失值一起使用:
d = {'01-01-2020':0,'25-06-2020':2,'01-09-2021':1}
df['Balance'] = df['Date'].dt.strftime('%Y-%m-%d').map(d).ffill().astype(int)
編輯:對新列使用左連接Balance,然后在 之后向前填充值df1['Date'],首先替換為0:
df['Date'] = pd.to_datetime(df['Date'])
df1['Date'] = pd.to_datetime(df1['Date'])
df2 = df.merge(df1[['Date','Balance']], on='Date', how='left')
df2['Balance'] = df2['Balance'].ffill().fillna(0).astype(int)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/396953.html
