当前位置: 首页 > 面试题库 >

创建熊猫滚动窗口系列数组

黄君博
2023-03-14
问题内容

假设我有以下代码

import numpy as np
import pandas as pd
x = np.array([1.0, 1.1, 1.2, 1.3, 1.4])
s = pd.Series(x, index=[1, 2, 3, 4, 5])

这将产生以下内容s

1    1.0
2    1.1
3    1.2
4    1.3
5    1.4

现在我要创建的是一个滚动窗口,它的大小为n,但是我不想获取每个窗口的均值或标准差,我只想要数组。因此,假设n = 3。我想要一个转换,输出给定输入以下序列s

1    array([1.0, nan, nan])
2    array([1.1, 1.0, nan])
3    array([1.2, 1.1, 1.0])
4    array([1.3, 1.2, 1.1])
5    array([1.4, 1.3, 1.2])

我该怎么做呢?


问题答案:

这是一种方法

In [294]: arr = [s.shift(x).values[::-1][:3] for x in range(len(s))[::-1]]

In [295]: arr
Out[295]:
[array([  1.,  nan,  nan]),
 array([ 1.1,  1. ,  nan]),
 array([ 1.2,  1.1,  1. ]),
 array([ 1.3,  1.2,  1.1]),
 array([ 1.4,  1.3,  1.2])]

In [296]: pd.Series(arr, index=s.index)
Out[296]:
1    [1.0, nan, nan]
2    [1.1, 1.0, nan]
3    [1.2, 1.1, 1.0]
4    [1.3, 1.2, 1.1]
5    [1.4, 1.3, 1.2]
dtype: object


 类似资料:
  • 问题内容: 考虑一下您有一些不均匀的时间序列数据: 假设我想在1ms的时间内进行滚动求和: 目前,我将所有内容都放回多头,并在cython中进行,但是在纯熊猫中有可能吗?我知道您可以执行.asfreq(’U’)之类的操作,然后填充并使用传统函数,但是一旦行数超过玩具数量,就无法缩放。 作为参考,这是一个骇人的,不是快速的Cython版本: 在更大的系列上对此进行演示: 问题答案: 您可以使用求和和

  • 问题内容: 样本数据 我有一些这样的代码 电流输出 预期产量 由于数据正在流式传输。我想检查重复的记录(其商人和金额值相同)是否在两分钟内到达,所以我将其丢弃并对其不进行任何处理。将其打印为副本。 我是否需要对索引压缩或groupby进行处理?但是然后如何等于多列。或在两列上有一些滚动条件,但找不到任何方法。 我在这里想念什么? 谢谢 编辑 所以我尝试这样的事情,如果结果少于120秒,我可以处理它

  • 问题内容: 我有一个如下所示的df: 我正在尝试创建一个如下所示的df: 我试过了 但这不是我要寻找的。 任何指导表示赞赏 问题答案: 那不是新的专栏,而是新的DataFrame: 要获得想要的结果,请使用: 要获得“新列”,您可以使用transform: 我建议阅读docs的split- apply-combine部分 。

  • 我有一个df,看起来像: 作为pd进口熊猫 df df

  • 问题内容: 题 我在弄清楚如何根据其他两列中的值创建新的DataFrame列时遇到麻烦。我需要使用if / elif / else逻辑。但是我发现的所有文档和示例仅显示了if / else逻辑。这是我正在尝试做的一个示例: 码 我也愿意使用where()。只是找不到正确的语法。 问题答案: 如果您有多个分支语句,则最好创建一个接受行的函数,然后将其应用于。这通常比通过行迭代要快得多。

  • 问题内容: 以下面的DataFrame为例, 生成一个新列的简单方法是什么?该列包含某一列中的某些数据聚集? 例如,如果我总结了 我怎样才能得到 问题答案:

  • 问题内容: 我最终在写出这个问题的时候就弄清楚了,所以无论如何我都会发布并回答我自己的问题,以防别人需要一点帮助。 问题 假设我们有一个,包含该数据。 目标 对于每一行,将 其一个月*以内的每一行的总和相加,最好使用一种非常干净的语法。 * 我尝试过的 但这引发了异常 版: 问题答案: 使用偏移量而不是专门使用30天或大约一个月。 最初,我凭直觉跳了起来,使用了一个月,但现在很清楚为什么不起作用。

  • 第一科伦:武器 第二栏:Pepetrator_年龄 例如,y轴应该是案件数量x轴犯罪人的年龄 线是犯罪者使用的武器类型 您可以将其复制粘贴到jupyter以初始化数据集 此处的数据集:https://www.kaggle.com/jyzaguirre/us-homicide-reports