问题标签 [pandas-resample]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用熊猫数据框日期时间索引重采样错误
我正在运行一个txt。通过 python 文件并尝试将数据重新采样为每日平均值。.txt。文件包含实际数据集之前的文本,所以我读取了文件然后删除了第一行。整个数据集有大约 300 万行。
示例数据如下所示:
我的代码如下所示:
当我运行代码时,我收到错误“TypeError:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但有一个 'Index' 实例”。我不确定如何解决这个问题,即使在重置索引之后也是如此。当我将日期列设置为索引并尝试重新采样时,我得到一个关键错误。我可以让它工作的唯一方法是,如果我在读取文件时索引日期列,并在导入文件之前删除不必要的前几行(但我宁愿不必这样做)。
预期输出:
有什么建议么?谢谢!
python - Pandas 按日期和索引汇总按重新采样聚合进行分组
我对 pandas 有一个复杂的问题。我想根据时间戳 start_date 计算累积总和,这与我们有一个 end_date 有关,如果考虑到大于 1970 ,则从总和中减去。
样本数据
我试过的:
我的期望:
python - 如何重新索引 pandas DataFrame,同时根据新索引对其进行重新采样并聚合其数据?
1) 我在 pandas DataFrame 中有以下 1 分钟频率数据:
0 | 打开 | 高的 | 低的 | 关 | 体积 |
---|---|---|---|---|---|
2010-10-19 06:31:00 | 58.75 | 58.81 | 58.58 | 58.59 | 228125 |
2010-10-19 06:32:00 | 58.59 | 58.68 | 58.55 | 58.57 | 153303 |
2010-10-19 06:33:00 | 58.57 | 58.6 | 58.5 | 58.52 | 115647 |
2010-10-19 06:34:00 | 58.52 | 58.58 | 58.48 | 58.58 | 63577 |
2010-10-19 06:35:00 | 58.57 | 58.59 | 58.51 | 58.53 | 111770 |
2)我还有以下索引数组:
[2010-10-19 06:32:00, 2010-10-19 06:35:00]
3)我想根据索引数组重新索引数据帧,这样新的数据帧将只有索引数组的 2 行,同时设法重新采样它,以便新数据帧的第一行的高位是较高的原始数据帧前 2 行的高点,新数据帧第二行的低点是原始数据帧中 3 个低点中的较低者,依此类推。
通常,人们会通过 .resample() 和 .agg() 聚合数据,但前提是您已经拥有了所需状态的数据框。我不能以这样的方式使用 reindex() ,以至于我可以用 .resample() 跟进它并完成此操作。
我想我正在寻找一种方法来一次重新索引和重新采样。我怎样才能最好地做到这一点?
python - MultiIndex的重采样
我想按类型对数据集进行每日细分。没有每种类型的每一天的记录,它们不存在的地方我想要 NaN。
我能够得到一个“重新采样到每日”的结果,但是类型被省略了。
下面的代码应该是一个完整的示例(好吧,除了最后的已知错误!):
我正在寻找的输出是每天/类型组合的一行:
日期 | 类型 | 价值 |
---|---|---|
20210101 | 一个 | 1 |
20210102 | 一个 | 钠 |
20210103 | 一个 | 2 |
20210101 | 乙 | 钠 |
20210102 | 乙 | 3 |
20210103 | 乙 | 钠 |
感激地收到任何建议或指示。
pandas - 熊猫仅在有意义时重新采样
我有一个非常不规则的时间序列。两条记录之间的时间差可以是 1 秒或 10 天。
我想每 1 小时重新采样一次数据,但前提是顺序记录少于 1 小时。
如何在不产生太多循环的情况下解决这个问题?
在上面的示例中,我只想重新采样第 5-6 行(增量差异为 10 秒)和第 6-7 行(增量差异为 50 分钟)。其他人应该保持原样。
python - 将每日数据重采样为每周数据
关于这个主题有很多帖子。我浏览了它们,但找不到我的问题的答案:
我正在研究熊猫时间序列数据框。DataFrame 数据在每日时间范围内,我通过 pandas 库 resample() 函数将其聚合到每周时间范围,如下所示。
我遇到的问题是,某周的时间序列数据仅包含周一到周四的数据,但我不知道如何告诉 resample() 函数进行检查,如果是,则结束一周在星期四而不是星期五;“周五”。
python - 使用所有列重新采样多维数据系列
这是一个很难的:(我认为)
我有一个包含多列的时间序列索引数据框。我需要将数据重新采样为每分钟并使用列计算一些指标。问题是,我想为每分钟计算的值取决于该分钟内所有列中的值。我曾尝试使用resample('T').apply(func)
,但似乎func
是分别应用于每一列,而不是接收其他列作为输入。相反,我希望每次调用都func
接收一个包含该分钟时间索引的所有列的数据帧,然后我就可以使用该分钟的所有值,并基于所有这些值生成一个新值。
奖励:我实际上需要使用多个函数来执行此操作,因此生成的数据框有多个列,其名称与原始数据不同,其中每列中的每个值都是使用它所代表的一分钟内所有列中的值计算的。
当然有一种方法可以做到这一点,而无需用全能的熊猫遍历行......有什么想法吗?
示例:所需的输入和输出如下:(使用随机数据和函数,因为真正的代码是用于工作的,不能共享,所以 func1、func2 的内容无关紧要,只是它们对所有列的使用):
python - 如何在熊猫中为一天中的所有时间分配固定值
我有一个包含两列的半小时数据框。我想占用一天中的所有时间,然后进行一些计算,返回一个数字并将其分配给当天的所有半小时。下面是一个示例代码:
然后我想应用以下返回一个数字的函数:
此函数根据条件(DATA2>20)选择 DATA1 中的所有数据,然后取所有这些数据的中值。如何创建第三列(比如说结果)并为当天的所有半小时数据分配回这个固定数字(y)?
我的猜测是我应该使用这样的东西:
如果这种方法是正确的,我如何将带有两个参数的 my_f 传递给 resample.apply()?或者有没有其他方法可以完成类似的任务?
python - 具有日期时间索引的 Pandas 数据框在每月的第 n 天重新采样
想象一下在 DateTime 中索引的 ohlc 数据。我将在每个月的第 n 天重新采样这个数据框。
例如:
我需要的是:
事实上,我需要在每个月的第 25 天重新采样一次,如果没有数据,则必须用最接近的先前数据填充。