- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在寻找一个 pandas 等效于 resample
方法的数据帧,它不是 DatetimeIndex
而是一个整数数组,甚至可能是 float 。
我知道在某些情况下(例如 this one),重采样方法可以很容易地用重新索引和插值代替,但在某些情况下(我认为)它不能。
例如,如果我有
df = pd.DataFrame(np.random.randn(10,2))
withdates = df.set_index(pd.date_range('2012-01-01', periods=10))
withdates.resample('5D', np.std)
这给了我
0 1
2012-01-01 1.184582 0.492113
2012-01-06 0.533134 0.982562
但我无法使用 df
和重新采样生成相同的结果。所以我正在寻找可以作为
df.resample(5, np.std)
那会给我
0 1
0 1.184582 0.492113
5 0.533134 0.982562
有这样的方法吗?我能够创建此方法的唯一方法是手动将 df
分成较小的数据帧,应用 np.std
然后将所有内容连接回去,我发现这很慢而且不是一点都不聪明。
干杯
最佳答案
import pandas as pd
import numpy as np
np.random.seed([3,1415])
df = pd.DataFrame(np.random.rand(20, 2), columns=['A', 'B'])
您需要自己创建标签进行分组。我会使用:
(df.index.to_series() / 5).astype(int)
为您提供一系列值,例如 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, ...]
然后在 中使用它>groupby
您还需要为新数据框指定索引。我会使用:
df.index[4::5]
要获取当前索引,从第 5 个位置开始(因此 4
),之后每第 5 个位置。它看起来像 [4, 9, 14, 19]
。我本可以将其作为 df.index[::5]
来获取起始位置,但我选择了结束位置。
# assign as variable because I'm going to use it more than once.
s = (df.index.to_series() / 5).astype(int)
df.groupby(s).std().set_index(s.index[4::5])
看起来像:
A B
4 0.198019 0.320451
9 0.329750 0.408232
14 0.293297 0.223991
19 0.095633 0.376390
这相当于下采样。我们还没有解决抽样问题。
要通过更频繁的方式从我们生成的数据帧索引返回到数据帧索引,我们可以像这样使用 reindex
:
# assign what we've done above to df_down
df_down = df.groupby(s).std().set_index(s.index[4::5])
df_up = df_down.reindex(range(20)).bfill()
看起来像:
A B
0 0.198019 0.320451
1 0.198019 0.320451
2 0.198019 0.320451
3 0.198019 0.320451
4 0.198019 0.320451
5 0.329750 0.408232
6 0.329750 0.408232
7 0.329750 0.408232
8 0.329750 0.408232
9 0.329750 0.408232
10 0.293297 0.223991
11 0.293297 0.223991
12 0.293297 0.223991
13 0.293297 0.223991
14 0.293297 0.223991
15 0.095633 0.376390
16 0.095633 0.376390
17 0.095633 0.376390
18 0.095633 0.376390
19 0.095633 0.376390
我们还可以使用其他东西来重新索引
,例如 range(0, 20, 2)
以将样本提高到偶数整数索引。
关于python - Pandas 相当于整数索引的重采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37396264/
我正在寻找一种方法来对数字进行 1:40、3812 次(长度 = 3812)的采样,并进行替换 - 但对其进行限制,使每个数字的使用次数不会超过 100 次。有没有办法在采样命令 (sample())
如果我想随机采样 pandas 数据帧,我可以使用 pandas.DataFrame.sample . 假设我随机抽取 80% 的行。如何自动获取另外 20% 未选取的行? 最佳答案 正如 Lager
我使用以下函数在每个图像中采样点。如果batch_size为None,tf.range会给出错误。如何在 tensorflow 中采样 def sampling(binary_selection,nu
我想知道是否有任何方法可以循环浏览 .wav 文件以获取 wav 文件中特定点的振幅/DB。我现在正在将它读入一个字节数组,但这对我来说没有任何帮助。 我将它与我开发的一些硬件结合使用,这些硬件将光数
我有一个日期时间的时间序列,双列存储在 mySQL 中,并且希望每分钟对时间序列进行采样(即以一分钟为间隔提取最后一个值)。在一个 select 语句中是否有一种有效的方法来做到这一点? 蛮力方式将涉
我正在为延迟渲染管道准备好我的一个小型 DirectX 11.0 项目中的一切。但是,我在从像素着色器中对深度缓冲区进行采样时遇到了很多麻烦。 首先我定义深度纹理及其着色器资源 View :
问题出现在量子值的样本上。情况是: 有一个表支付(payments): id_user[int] sum [int] date[date] 例如, sum(数量) 可以是 0 到 100,000 之间
这是一个理论问题。我目前正在研究渲染方程,我不明白在哪种情况下区域采样或半球采样更好以及为什么。 我想知道的另一件事是,如果我们采用两种方法的平均值,结果是否会更好? 最佳答案 Veach 和 Gui
我有一个 4x4 阵列,想知道是否有办法从它的任何位置随机抽取一个 2x2 正方形,允许正方形在到达边缘时环绕。 例如: >> A = np.arange(16).reshape(4,-1) >> s
我想构建 HBase 表的行键空间的随机样本。 例如,我希望 HBase 中大约 1% 的键随机分布在整个表中。执行此操作的最佳方法是什么? 我想我可以编写一个 MapReduce 作业来处理所有数据
当像这样在 GLSL 中对纹理进行采样时: vec4 color = texture(mySampler, myCoords); 如果没有纹理绑定(bind)到 mySampler,颜色似乎总是 (0
我考虑过的一些方法: 继承自Model类 Sampled softmax in tensorflow keras 继承自Layers类 How can I use TensorFlow's sampl
我有表clients,其中包含id、name、company列。 表agreements,其中包含id、client_id、number、created_at列. 一对多关系。 我的查询: SELEC
在具有许多类的分类问题中,tensorflow 文档建议使用 sampled_softmax_loss通过一个简单的 softmax减少训练时间。 根据docs和 source (第 1180 行),
首先,我想从三个数据帧(每个 150 行)中随机抽取样本并连接结果。其次,我想尽可能多地重复这个过程。 对于第 1 部分,我使用以下函数: def get_sample(n_A, n_B, n_C):
我正在尝试编写几个像素着色器以应用于类似于 Photoshop 效果的图像。比如这个效果: http://www.geeks3d.com/20110428/shader-library-swirl-p
使用 Activity Monitor/Instruments/Shark 进行采样将显示充满 Python 解释器 C 函数的堆栈跟踪。如果能看到相应的 Python 符号名称,我会很有帮助。是否有
我正在使用GAPI API来访问Google Analytics(分析),而不是直接自己做(我知道有点懒...)。我看过类文件,但看不到任何用于检查采样的内置函数。我想知道使用它的人是否找到了一种方法
我正在尝试从 Peoplesoft 数据库中随机抽取总体样本。在线搜索使我认为 select 语句的 Sample 子句可能是我们使用的一个可行选项,但是我无法理解 Sample 子句如何确定返回的样
我有一个程序,在其中我只是打印到 csv,我想要每秒正好 100 个样本点,但我不知道从哪里开始或如何做!请帮忙! from datetime import datetime import panda
我是一名优秀的程序员,十分优秀!