q2第二版

btcm3 = pd.read_csv("./btc_weekly_3months.csv")
btcm3.head(5)

btcd5 = pd.read_csv("./btc_daily_5years.csv")
btcd5.head(5)


assert list(btcm3[btcm3["Date"]=="2023/9/11"]["Adj Close"])[0]==list(btcd5[btcd5["Date"]=="2023/9/17"]["Adj Close"])[0]

idx = list(btcd5[btcd5['Date']=="2023/9/11"].index)[0]
assert btcd5.loc[idx:idx+6, "Volume"].sum() == list(btcm3[btcm3["Date"]=="2023/9/11"]["Volume"])[0]


df_daily = btcd5
df_daily['Date'] = pd.to_datetime(df_daily['Date'])

def get_following_sunday(dt):
    days_until_sunday = 6 - dt.weekday()
    sunday_date = dt + timedelta(days=days_until_sunday)
    return sunday_date

df_daily['Week_Ending'] = df_daily['Date'].apply(get_following_sunday)

btc_weekly = df_daily.groupby('Week_Ending').agg({
    'Date': 'last',
    'Adj Close': 'last',
    'Volume': 'sum'
}).reset_index()

btc_weekly = btc_weekly.drop(columns = "Week_Ending")

btc_weekly.columns = ['Date', 'Adj Close', 'Volume']
btc_weekly = btc_weekly.sort_values(by='Date')

print("First 3 weeks of data in btc_weekly:")
print(btc_weekly.head(3))

print("\nLast 3 weeks of data in btc_weekly:")
print(btc_weekly.tail(3))


print("\nNumber of rows and columns in btc_weekly:")
print(btc_weekly.shape)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值