gpt4 book ai didi

python - 通过计算乘积来总结 Pandas 数据帧

转载 作者:行者123 更新时间:2023-12-04 09:16:56 25 4
gpt4 key购买 nike

我正在尝试通过计算每个滚动窗口的乘积来更改 Pandas DataFrame 上的频率。

df = pd.DataFrame({
'a': [random.random() for i in range(10)]
},
index=[date.today() + timedelta(i) for i in range(10)]
)
a
2020-07-30 0.352619
2020-07-31 0.778134
2020-08-01 0.094192
2020-08-02 0.111958
2020-08-03 0.619847
2020-08-04 0.573964
2020-08-05 0.120369
2020-08-06 0.075018
2020-08-07 0.647727
2020-08-08 0.717462
我想要的输出是这样的:
2020-07-30  0.274384
2020-08-01 0.010545
2020-08-03 0.355769
2020-08-05 0.009029
2020-08-07 0.464719
我尝试使用 .asfreq('2D') 来做到这一点和 .rolling(window=2, min_periods=1)但我不能申请 asfreq滚动物体:
df['a'].rolling(window=2, min_periods=1).asfreq('1D').product()

AttributeError: 'Rolling' object has no attribute 'asfreq'

最佳答案

看起来你不想要 rolling ,而是 asfreqresample :

df.resample('2D').prod()
输出:
                   a
2020-07-30 0.274385
2020-08-01 0.010546
2020-08-03 0.355770
2020-08-05 0.009030
2020-08-07 0.464720

更新 : 一般可以用 groupby()像这样:
df.groupby(np.arange(len(df))//N).prod()
但是你会得到一个带有 RangeIndex 的数据框。要保留时间索引,您可以执行以下操作:
(df.reset_index().groupby(np.arange(len(df))//N)
.agg({'index':'first', 'a':'prod'})
)

关于python - 通过计算乘积来总结 Pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63173729/

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