python - 如何使用计算数据创建历史数据框?

标签 python pandas

我想创建一个数据框,其中包含我计算的历史值。

我的 df1 如下:

df1:
      A    B
0   2.0  3.0`
1   4.0  6.0
2   6.0  9.0

我计算 df1 的平均值如下:

m1 = df1.mean(axis=0)

m1:
A  4.0
B  6.0

'm1' 是从 0 到 2(索引)的整个数据系列的平均值。

我想要的不是获取 m1,而是获取历史时期均值的数据框。例如,我想获取每两个周期(两个连续索引)的平均值并将它们创建为数据框。我想要的输出如下:

# I want mean of two consecutive periods of each column as below.

df2:
     A     B
0  3.0   4.5
1  5.0   7.5

你能帮我解决这个问题吗?谢谢。

最佳答案

使用rolling() ,它为您想要的任何大窗口提供滚动窗口计算。从您的示例来看,您似乎希望窗口大小为 2(一次计算 2 行的平均值):

df1.rolling(2).mean()

     A    B
0  NaN  NaN
1  3.0  4.5
2  5.0  7.5

唯一的问题是它为您的第一个索引提供了 NaN,因为在第一行没有什么要计算的。你可以忽略它,但如果你想摆脱它,你可以切掉那一行:

df1.rolling(2).mean().iloc[1:].reset_index(drop=True)

     A    B
0  3.0  4.5
1  5.0  7.5

关于python - 如何使用计算数据创建历史数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49310303/

相关文章:

python - 从结果中排除项目

python - 如何检查列表内列表的唯一性?

pandas - 按日期平均 Pandas 数据框

python - 计算 Pandas 系列变化的表达式过于复杂

python - 使用 Boto3 将文件上传到带有前缀的 S3 存储桶

python - 在 url 错误中搜索单词

python - 在Python中将浮点型数据框列拆分为两列

python - 按整数位置索引或切片多级列

python - 情节饼上的标签非常接近

python - 只有第一行输出被打印到我的文本文件