- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在执行一个简单的财务数据示例,试图制作一个经典的烛台图。为此,我必须计算每个时间单位的开盘价、最大值、最小值和收盘价。我决定将 resample 函数与 groupby 一起使用(针对每个符号)。为了避免多索引杂耍,我决定使用 pd.NamedAgg 函数来简化一切:
candles = (data.set_index('trade_datetime')
.groupby('instrument_symbol')
.resample('1T')
.agg(open=pd.NamedAgg("trade_price", "first"),
max=pd.NamedAgg("trade_price", "max"),
median=pd.NamedAgg("trade_price", "median"),
min=pd.NamedAgg("trade_price", "min"),
close=pd.NamedAgg("trade_price", "last"),
std=pd.NamedAgg("trade_price", np.std),
volume=pd.NamedAgg("trade_quantity", "sum")).reset_index())
不幸的是我得到了这个错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<timed exec> in <module>
TypeError: aggregate() missing 1 required positional argument: 'func'
删除重采样时我没有收到错误消息:
candles = (data.set_index('trade_datetime')
.groupby('instrument_symbol')
#.resample('1D')
.agg(open=pd.NamedAgg("trade_price", "first"),
max=pd.NamedAgg("trade_price", "max"),
median=pd.NamedAgg("trade_price", "median"),
min=pd.NamedAgg("trade_price", "min"),
close=pd.NamedAgg("trade_price", "last"),
std=pd.NamedAgg("trade_price", np.std),
volume=pd.NamedAgg("trade_quantity", "sum")).reset_index())
instrument_symbol open max median min close std volume
0 PETR4 31.0 31.0 30.2 28.39 30.0 0.714111 12400
我使用的是 pandas 1.0.1,下面有一些示例可以重现错误。
trade_datetime instrument_symbol trade_price trade_quantity
1166911 2019-11-04 10:32:09.737 PETR4 31.00 200
1174414 2019-11-04 11:30:14.359 PETR4 30.71 300
1208601 2019-11-04 15:23:06.619 PETR4 30.23 100
1355062 2019-11-05 17:06:03.523 PETR4 29.72 200
1260316 2019-11-06 11:11:48.144 PETR4 28.39 1100
1295823 2019-11-06 11:49:00.767 PETR4 29.50 100
1343467 2019-11-06 15:52:42.506 PETR4 29.42 100
1261615 2019-11-07 13:12:30.599 PETR4 30.05 200
1297542 2019-11-07 15:28:37.714 PETR4 30.85 600
1305454 2019-11-07 15:42:27.041 PETR4 30.90 100
1323388 2019-11-07 16:48:32.382 PETR4 30.87 100
1381162 2019-11-08 10:24:50.643 PETR4 30.20 100
1385193 2019-11-08 11:05:14.777 PETR4 30.66 9000
1423408 2019-11-08 16:46:33.172 PETR4 30.11 100
1447363 2019-11-08 17:52:57.999 PETR4 30.00 100
使用以列作为键、聚合函数作为值的字典的旧语法是可行的。我知道有多种方法可以检索此结果,但我真的很喜欢使用这个新的 NamedAgg 函数。
我做错了什么吗?这是一个错误吗?我不太愿意打开一个问题,因为一切似乎都很好。
最佳答案
这是一个错误。 Solved在 Pandas >=1.4.0 中。尝试 <1.4.0 的解决方法:func = None。
.agg(func = None, open=pd.NamedAgg("trade_price", "first") ...
关于python - Pandas 命名聚合不适用于 resample agg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60788893/
我正在尝试对数据框重新采样。首先,我想在结果中保留几个聚合。其次,对特定列有一个额外的感兴趣的聚合。由于此聚合仅与单个列相关,因此可以将重采样器限制在该列上,以免不必要地将聚合应用于其他列。 此场景适
我需要根据月度数据计算年平均值。如果我的月度数据中有 nan 值,我希望全年也为 nan。 这是我到目前为止的代码: station_data = pd.read_csv(station_data_f
我正在尝试使用插入符和 doMC 在 R 中训练 SVM 模型。这是一个可重现的示例: library(mlbench) library(caret) library(doMC) registerDo
我有一个 pandas Timestamp 与日期时间和频率相关联。但是,日期时间似乎与频率无关。例如, >>> t = pd.Timestamp('2018-6-6', freq='W-FRI')
import pandas as pd import os files = os.listdir('D:\\Data\\200 Stocks 1 minute Data') for file in f
所以我想使用填充方法对数据进行下采样 我有一个数据: 2020-01-01 1.248310e+06 2021-01-01 1.259511e+06 2022-01-01 1.276312e+0
我必须将数据集从 10 分钟间隔重新采样为 15 分钟间隔,以使其与另一个数据集同步。根据我在 stackoverflow 上的搜索,我有一些如何继续的想法,但没有一个提供干净清晰的解决方案。 问题
我正在阅读 resample a dataframe with different functions applied to each column? 解决方案是: frame.resample('1
我有一个 pandas 数据框,其中包含不同时间尺度的信息,即在某些时期我每秒有 100 个数据点,而在其他时期我每分钟有 1 个数据点。 我的目标是使用固定时间窗口(例如:1 秒)重新采样此数据帧,
我正在使用 pandas 将存储在 data_m 中的日内数据转换为每日数据。出于某种原因,resample 添加了当天数据中不存在的行。例如,1/8/2000 不在日内数据中,但日数据包含该日期的一
我正在使用 pandas 处理具有某些缺失值的月度数据。我希望能够使用 resample 方法计算年度统计数据,但多年来没有丢失数据。 这里有一些代码和输出来演示: import pandas as
我正在执行一个简单的财务数据示例,试图制作一个经典的烛台图。为此,我必须计算每个时间单位的开盘价、最大值、最小值和收盘价。我决定将 resample 函数与 groupby 一起使用(针对每个符号)。
下面是一个例子: # Generate some random time series dataframe with 'price' and 'volume' x = pd.date_range('2
与 pandas.DataFrame.resample我可以对 DataFrame 进行下采样: df.resample("3s", how="mean") 这会使用类似日期时间的索引重新采样数据框,
当使用平均聚合(每天到每月)重新采样系列时 -> 缺少的日期时间用 NaN 填充,这是可以的,因为我们可以简单地使用 .dropna() 删除它们功能, 然而,总和/总聚合 -> 缺少的日期时间用 0
我从时间戳为月底的每月系列开始。我想通过填充远期值将它们升级为业务(周一至周五)每日频率。我希望满足两个条件: 如果原始版本是周末,则在重新采样时永远不会丢失值时间序列 始终向前填写:如果原始系列中的
我的 2017 年 1 月数据集结构如下例所示。 Date ProductID ProductType Qty 1.1.2017 1000 101 7 1.1.2017 1
我是 Python 新手。如何根据日期对数据求和并绘制结果? 我有一个 Series 对象,其数据如下: 2017-11-03 07:30:00 NaN 2017-11-03 09:18:0
目前,当我使用 pandas 重新采样功能数天到数周时,它使用星期日到星期六的周,但我希望它使用星期一到星期日的周。这可能吗?我尝试使用文档中的 loffset ,但它根本不会更改数据。 pivot_
根据scipy.signal.resample的文档,速度应该根据输入的长度而变化: As noted, resample uses FFT transformations, which can be
我是一名优秀的程序员,十分优秀!