gpt4 book ai didi

python - 高级数组/数据帧切片(numpy/pandas)

转载 作者:行者123 更新时间:2023-11-30 22:56:24 24 4
gpt4 key购买 nike

我正在尝试从 Jade 米价格列表(按日期索引)中生成 30 个连续日周期的 50 个随机样本。

到目前为止,我在第一行已经“随机选择 50 天”。对于第二行,我真正想要的是一组数据帧,每个数据帧包含从样本日期算起 30 天的数据帧。目前它只返回当天的价格。

samples=np.random.choice(corn[:'1981'].index,50)
corn['Open'][samples] #line I need to fix

最干净的方法是什么?

最佳答案

你可以使用

corn.loc[date:date+pd.Timedelta(days=29)]

选择从日期 date 开始的 30 天的行。请注意,.loc[start:end] 包括 startend(与使用半开区间的 Python 切片不同)。因此,在 date 中添加 29 天会得到长度为 30 的 DataFrame。

要获取 DataFrame 列表,请使用列表理解:

dfs = [corn.loc[date:date+pd.Timedelta(days=29)] for date in samples]
<小时/>
import numpy as np
import pandas as pd

N = 365
corn = pd.DataFrame({'Open': np.random.random(N)},
index=pd.date_range('1980-1-1', periods=N))
samples = np.random.choice(corn[:'1981'].index,50)
dfs = [corn.loc[date:date+pd.Timedelta(days=29)] for date in samples]

关于python - 高级数组/数据帧切片(numpy/pandas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37004764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com