Bru*_*que 6 python datetime data-manipulation weekend dataframe
我有一个数据框(称为 df),如下所示:

我试图获取所有周末“成交量”值(“WEEKDAY”列 = 5(星期六)或 6(星期日)的值)并将它们加到随后的星期一(WEEKDAY = 0)。
我尝试了一些方法,但没有任何效果,以最后三行为例:

我期待的是这样的:

要重现该问题:
!wget https://raw.githubusercontent.com/brunodifranco/TCC/main/volume_por_dia.csv
df = pd.read_csv('volume_por_dia.csv').sort_values('Datas',ascending=True)
df['Datas'] = pd.to_datetime(df['Datas'])
df = df_volume_noticias.set_index('Datas')
df['WEEKDAY'] = df.index.dayofweek
df
Run Code Online (Sandbox Code Playgroud)
这使用pd.shift解决了您的问题。
import pandas as pd
df['prior_volume'] = df.Volume.shift(1)
df['prior_volume2'] = df.Volume.shift(2)
df.loc[df['WEEKDAY'] == 0, 'Volume'] = df.loc[df['WEEKDAY'] == 0, 'prior_volume'] + \
df.loc[df['WEEKDAY'] == 0, 'prior_volume2'] + \
df.loc[df['WEEKDAY'] == 0, 'Volume']
df = df[df['WEEKDAY'].isin(range(5))]
df = df[['Volume', 'WEEKDAY']]
df.head(10)
Run Code Online (Sandbox Code Playgroud)