亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

獲取前一天的數據來計算新的列數據

獲取前一天的數據來計算新的列數據

蝴蝶不菲 2022-10-18 16:53:56
我有以下數據:    High    Low Open    Close   Volume  Adj Close   bccDate                            2018-01-02  2695.889893 2682.360107 2683.729980 2695.810059 3367250000  2695.810059 False2018-01-03  2714.370117 2697.770020 2697.850098 2713.060059 3538660000  2713.060059 False2018-01-04  2729.290039 2719.070068 2719.310059 2723.989990 3695260000  2723.989990 False2018-01-05  2743.449951 2727.919922 2731.330078 2743.149902 3236620000  2743.149902 False2018-01-08  2748.510010 2737.600098 2742.669922 2747.709961 3242650000  2747.709961 True... ... ... ... ... ... ... ...2020-04-13  2782.459961 2721.169922 2782.459961 2761.629883 5274310000  2761.629883 False2020-04-14  2851.850098 2805.100098 2805.100098 2846.060059 5567400000  2846.060059 False2020-04-15  2801.879883 2761.540039 2795.639893 2783.360107 5203390000  2783.360107 False2020-04-16  2806.510010 2764.320068 2799.340088 2799.550049 5179990000  2799.550049 False2020-04-17  2879.219971 2830.879883 2842.429932 2874.560059 5792140000  2874.560059 False577 rows × 7 columns我需要創建一個名為“pct”的列,在其中獲取前一天的close數據并將其除以今天的數據Low。我怎樣才能做到這一點?
查看完整描述

1 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

如果需要將列中的前幾天除以close列中的實際天數low:


df['prev'] = df['Close'].shift(freq='1d').div(df['Low'])

print (df)

                   High          Low         Open        Close      Volume  \

Date                                                                         

2018-01-02  2695.889893  2682.360107  2683.729980  2695.810059  3367250000   

2018-01-03  2714.370117  2697.770020  2697.850098  2713.060059  3538660000   

2018-01-04  2729.290039  2719.070068  2719.310059  2723.989990  3695260000   

2018-01-05  2743.449951  2727.919922  2731.330078  2743.149902  3236620000   

2018-01-08  2748.510010  2737.600098  2742.669922  2747.709961  3242650000   

2020-04-13  2782.459961  2721.169922  2782.459961  2761.629883  5274310000   

2020-04-14  2851.850098  2805.100098  2805.100098  2846.060059  5567400000   

2020-04-15  2801.879883  2761.540039  2795.639893  2783.360107  5203390000   

2020-04-16  2806.510010  2764.320068  2799.340088  2799.550049  5179990000   

2020-04-17  2879.219971  2830.879883  2842.429932  2874.560059  5792140000   


              Adj Close    bcc      prev  

Date                                      

2018-01-02  2695.810059  False       NaN  

2018-01-03  2713.060059  False  0.999273  

2018-01-04  2723.989990  False  0.997790  

2018-01-05  2743.149902  False  0.998559  

2018-01-08  2747.709961   True       NaN  

2020-04-13  2761.629883  False       NaN  

2020-04-14  2846.060059  False  0.984503  

2020-04-15  2783.360107  False  1.030606  

2020-04-16  2799.550049  False  1.006888  

2020-04-17  2874.560059  False  0.988933  

如果需要除以今天Low:


#last datetime changed to today

print (df)

                   High          Low         Open        Close      Volume  \

Date                                                                         

2018-01-02  2695.889893  2682.360107  2683.729980  2695.810059  3367250000   

2018-01-03  2714.370117  2697.770020  2697.850098  2713.060059  3538660000   

2018-01-04  2729.290039  2719.070068  2719.310059  2723.989990  3695260000   

2018-01-05  2743.449951  2727.919922  2731.330078  2743.149902  3236620000   

2018-01-08  2748.510010  2737.600098  2742.669922  2747.709961  3242650000   

2020-04-13  2782.459961  2721.169922  2782.459961  2761.629883  5274310000   

2020-04-14  2851.850098  2805.100098  2805.100098  2846.060059  5567400000   

2020-04-15  2801.879883  2761.540039  2795.639893  2783.360107  5203390000   

2020-04-16  2806.510010  2764.320068  2799.340088  2799.550049  5179990000   

2020-04-21  2879.219971  2830.879883  2842.429932  2874.560059  5792140000   


              Adj Close    bcc  

Date                            

2018-01-02  2695.810059  False  

2018-01-03  2713.060059  False  

2018-01-04  2723.989990  False  

2018-01-05  2743.149902  False  

2018-01-08  2747.709961   True  

2020-04-13  2761.629883  False  

2020-04-14  2846.060059  False  

2020-04-15  2783.360107  False  

2020-04-16  2799.550049  False  

2020-04-21  2874.560059  False  

today = pd.Timestamp.today().floor('D')

print (today)

2020-04-21 00:00:00


print (df.loc[today, 'Low'])

2830.8798829999996


df['prev'] = df['Close'].shift(freq='1d').div(df.loc[today, 'Low'])

print (df)

                   High          Low         Open        Close      Volume  \

Date                                                                         

2018-01-02  2695.889893  2682.360107  2683.729980  2695.810059  3367250000   

2018-01-03  2714.370117  2697.770020  2697.850098  2713.060059  3538660000   

2018-01-04  2729.290039  2719.070068  2719.310059  2723.989990  3695260000   

2018-01-05  2743.449951  2727.919922  2731.330078  2743.149902  3236620000   

2018-01-08  2748.510010  2737.600098  2742.669922  2747.709961  3242650000   

2020-04-13  2782.459961  2721.169922  2782.459961  2761.629883  5274310000   

2020-04-14  2851.850098  2805.100098  2805.100098  2846.060059  5567400000   

2020-04-15  2801.879883  2761.540039  2795.639893  2783.360107  5203390000   

2020-04-16  2806.510010  2764.320068  2799.340088  2799.550049  5179990000   

2020-04-21  2879.219971  2830.879883  2842.429932  2874.560059  5792140000   


              Adj Close    bcc      prev  

Date                                      

2018-01-02  2695.810059  False       NaN  

2018-01-03  2713.060059  False  0.952287  

2018-01-04  2723.989990  False  0.958380  

2018-01-05  2743.149902  False  0.962241  

2018-01-08  2747.709961   True       NaN  

2020-04-13  2761.629883  False       NaN  

2020-04-14  2846.060059  False  0.975538  

2020-04-15  2783.360107  False  1.005362  

2020-04-16  2799.550049  False  0.983214  

2020-04-21  2874.560059  False       NaN  


查看完整回答
反對 回復 2022-10-18
  • 1 回答
  • 0 關注
  • 93 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號