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

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

迭代數據幀以提取特定時間段的增量

迭代數據幀以提取特定時間段的增量

慕無忌1623718 2023-12-12 15:16:56
我有一個文件 df,我希望獲取每 7 天時間段的增量并反映該特定時間段的時間戳df:Date          Value10/15/2020    7510/14/2020    7010/13/2020    6510/12/2020    6010/11/2020    5510/10/2020    5010/9/2020     4510/8/2020     4010/7/2020     3510/6/2020     3010/5/2020     2510/4/2020     2010/3/2020     1510/2/2020     1010/1/2020     5期望的輸出:10/15/2020 到 10/9/2020 是 7 天,增量為:75 - 45 = 30 10/9/2020 時間戳為:30 等等Date          Value10/9/2020     3010/2/2020     30這就是我正在做的:df= df['Delta']=df.iloc[:,6].sub(df.iloc[:,0]),Date=pd.Series(pd.date_range(pd.Timestamp('2020-10- 15'), periods=7, freq='7d')))[['Delta','Date']]我也在想我也許可以做到這一點:編輯我將 callDate 更新為 Datefor row in df.itertuples():  Date = datetime.strptime(row.Date, "%m/%d/%y  %I:%M %p")  previousRecord = df['Date'].shift(-6).strptime(row.Date, "%m/%d/%y  %I:%M   %p")  Delta = Date - previousRecord任何建議表示贊賞
查看完整描述

2 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

不要迭代數據框。您可以使用merge:


(df.merge(df.assign(Date=df['Date'] - pd.to_timedelta('6D')),

         on='Date')

   .assign(Value = lambda x: x['Value_y']-x['Value_x'])

   [['Date','Value']]

)

輸出:


        Date  Value

0 2020-10-09     30

1 2020-10-08     30

2 2020-10-07     30

3 2020-10-06     30

4 2020-10-05     30

5 2020-10-04     30

6 2020-10-03     30

7 2020-10-02     30

8 2020-10-01     30


查看完整回答
反對 回復 2023-12-12
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

你寫的最后一段代碼就是我的做法。唯一的問題是Delta = Date - previousRecord,這里沒有任何東西被調用Date。您應該訪問與 關聯的值callDate。



查看完整回答
反對 回復 2023-12-12
  • 2 回答
  • 0 關注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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