重新采样每日数据以获得每月数据帧?

2023-12-15

我有一个每日数据框,我正在尝试resample以获得每月的Open High Low Close.

daily_df

            Open   High    Low   Last  Close

Date                                         

2010-01-04  55.15  57.55  54.55  57.50  57.30

2010-01-05  59.70  59.70  57.45  57.90  58.00

2010-01-06  60.30  60.30  57.10  57.55  57.50

2010-01-07  60.25  60.25  57.35  58.85  58.90

2010-01-08  59.40  59.95  56.90  57.30  57.65

2010-01-11  57.30  57.95  56.00  56.25  56.25

2010-01-12  56.25  56.80  53.80  54.25  54.10

2010-01-13  54.00  55.00  52.15  54.90  54.85

2010-01-14  55.45  55.70  54.15  54.30  54.35

2010-01-15  54.60  55.30  54.00  54.30  54.30

2010-01-18  53.90  55.20  53.85  54.35  54.40

2010-01-19  54.60  55.20  53.55  53.65  53.75

2010-01-20  54.40  54.40  53.45  53.60  53.70

2010-01-21  53.85  53.85  51.95  52.10  52.25

2010-01-22  51.80  52.85  50.30  51.85  52.00

2010-01-25  52.50  52.50  50.50  50.70  50.85

2010-01-27  51.25  51.25  47.80  47.90  48.20

2010-01-28  48.55  50.50  47.10  47.45  47.35

2010-01-29  47.45  52.15  45.60  51.80  51.70

2010-02-01  51.80  52.40  50.50  51.50  51.45

2010-02-02  53.25  54.10  51.40  51.80  51.80

2010-02-03  51.60  52.90  51.50  51.85  51.95

我努力了:

df2 = df_daily.resample('M',convention='end').asfreq()

这给了我一个仅包含收盘值的数据框,即开盘高低收盘的第 30 个值(如果日期正好是月底),否则NaN.

df2=df_daily.resample('M').mean()

我认为这导致的值是特定月份开盘价、收盘价的平均值。

我希望从有价格的月份的第一天开始获取该月的开盘价,高为该月的最高值,低为该月的最低值,接近实际收盘价。

我相信我可以使用 min max 以不同的方式在 pandas 中做到这一点,但只是想知道是否可以使用重采样来做到这一点。

预期 df

         Open   High    Low   Close

Date                                         

2010-01-29  55.15  60.3  45.6  51.7

Thanks


resample按月考虑每月的最后一天,无论列日期如何。

df2 = df_daily.resample('M').agg({'Open':'first', 'High':'max', 
                                      'Low': 'min', 'Close':'last'})

Output:

            Open    High    Low    Close
Date                
2010-01-31  55.15   60.3    45.6    51.70
2010-02-28  51.80   54.1    50.5    51.95

您可以将索引更改为列中存在的最后一天:

df2 = df_daily.resample('M').agg({'Open':'first', 'High':'max', 
                                      'Low': 'min', 'Close':'last'})

idx = df_daily.reset_index().groupby(df_daily.index.to_period('M'))['Date'].idxmax()
df2.index = df_daily.iloc[idx].index
print(df2)

Output:

            Open    High    Low    Close
Date                
2010-01-29  55.15   60.3    45.6    51.70
2010-02-03  51.80   54.1    50.5    51.95

如果你只想groupby使用年份和月份:

df3 = df_daily.groupby([df_daily.index.year,df_daily.index.month]).agg({'Open':'first',
                         'High':'max', 'Low': 'min', 'Close':'last'})

df3.index.names= ['Year', 'Month']
print(df3)

Output:

                Open    High    Low     Close
Year    Month               
2010      1     55.15   60.3    45.6    51.70
          2     51.80   54.1    50.5    51.95
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重新采样每日数据以获得每月数据帧? 的相关文章

随机推荐

  • 我的整合金矿算法的缺陷在哪里?

    设置是 给定一个列表N像这样的物体 class Mine public int Distance get set from river public int Gold get set in tons 将黄金从一个矿场转移到另一个矿场的成本为
  • Windows 通知库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在为 Windows 开发一个小型托盘图标应用程序 我需要显示非侵入性的视觉通知 类似于您在 MSN Messenger 或任何其他 IM 应用
  • 获取代理ip地址使用scrapy进行爬取

    我使用 Tor 来抓取网页 我启动了 Tor 和 Polipo 服务并添加了 class ProxyMiddleware object overwrite process request def process request self r
  • 在 JTextField 中键入阿拉伯数字

    我正在尝试在中输入阿拉伯数字JTextField我用过DocumentListener如下 txtName getDocument addDocumentListener this public void insertUpdate Docu
  • windows批处理中call和cmd /c的区别

    有人可以解释一下两者之间有什么区别吗 call someBatchFile bat And cmd C someBatchFile bat 他们都向我建议作为解决方案this问题 但我不明白为什么它们都有效 更重要的是 如果有任何显着差异我
  • 使用perl在字符串中搜索未知子字符串

    我正在尝试从网站下载文件 但我只想下载文件版本比我拥有的同一文件最新的版本 文件名为CTP Latest5 0 37 iso 我需要检查文件名中的字符串 37 因此 如果数字 37 大于我已有的版本 则只有我下载 下载文件后 我想将字符串
  • 将数据帧的行作为参数传递给函数,同时保持其他参数不变

    跟进将数据帧的行作为参数传递给 R 中的函数 并使用指定参数的列名称 我想使用不同的参数组合来训练以下模型 library xgboost library Matrix df lt data frame y sample 0 1 1000
  • 无法使用 Logitech C920 访问 cv::VideoCapture 的属性

    我正在使用 Logitech C920 和 OpenCV 开发一个小型网络摄像头应用程序 实际上 我可以从相机获取图像 对于给定的分辨率没有任何问题 但除了框架宽度和高度之外 我无法访问相机中的任何设置 我有以下代码 正如您所猜测的 该代码
  • 安装 android studio 时安装 HAXM 失败

    无法安装英特尔 HAXM 此计算机满足 HAXM 的要求 但未开启 Intel 虚拟化技术 VT x 在启用 VT x 之前无法安装 HAXM 此消息出现在安装过程之间 但在安装工作室运行之后 请让我了解 HAXM 安装失败对工作室的影响
  • CSS:100% 宽度或高度,同时保持纵横比?

    目前 通过 STYLE 我可以使用width 100 and auto在高度上 反之亦然 但我仍然无法将图像限制在特定位置 分别是太宽或太高 有任何想法吗 如果您仅在图像上定义一个维度 则图像长宽比将始终保留 问题是图像比您喜欢的更大 更高
  • Rails 搜索查询关联模型

    In 轨道广播 37它们显示了我正在尝试实现的简单搜索 我有以下关联 class Owner lt ActiveRecord Base has many dogs end class Dog lt ActiveRecord Base bel
  • 从 sudo minikube start --vm-driver none 切换到 --vm-driver docker 并且无法再访问我的应用程序

    我刚刚将 Minikube 1 7 3 升级到 1 10 1 并想从 vm driver none to vm driver docker 一切正常 我的应用程序已部署 我没有任何问题 但我的应用程序都不可用 我得到 Connection
  • 如何返回子数组的聚合,并在最顶部数组上使用过滤器? [复制]

    这个问题在这里已经有答案了 我想获取特定序数的所有编排数据 这是初始数据 id 5c7464a26b47a13470411031 affiliation liss family year 2019 weekNumber 9 chart ch
  • 在 C# 中将字符串数组编组为 char **

    我正在调用 C DLL 函数 需要提供以下 C 结构 typedef struct char mTableId char mFieldNames int mNumFields char mFilter char mSort int mOff
  • 引用其他类中的 Windows 窗体元素

    我对 Windows 窗体编程非常陌生 我遇到了一个问题 我有一个Windows窗体 Form1 带有文本框 tbx Log 在同一项目的另一个类中 我想向日志文本框写入一些内容 但我无法在该类中引用 tbx Log 我怎样才能实现这个目标
  • SSH 密钥:“‘id_rsa.pub’的权限 0644 过于开放。”在苹果电脑上

    我在我的mac上生成了一个ssh密钥对并将公钥添加到我的ubuntu服务器 实际上 它是我的mac上的虚拟机 但是当我尝试登录ubuntu服务器时 它说 WARNING UNPROTECTED PRIVATE KEY FILE Permis
  • 通过动态提供的对象属性列表按顺序对对象数组进行排序,然后按样式

    如何以 orderBy thenBy 样式编写通用排序函数 该函数按以数组形式提供的属性列表对数组进行排序 var items name AA prop1 12 prop2 13 prop3 5 prop4 22 name AA prop1
  • 读取事件查看器条目

    我想从 C 程序的某个自定义事件日志中读取事件条目 并通过它们的描述来过滤它们 有办法做到吗 或者一种将条目作为集合获取的方法 以便我能够按条件从中进行选择 尝试这样的事情 string queryString string Format
  • Bootstrap CSS 主动导航

    在 Bootstrap 网站上 子导航与各个部分相匹配 并在您滚动到该部分时更改背景颜色 我想创建自己的菜单 没有所有背景颜色和所有内容 但是 我将 CSS 更改为类似的 但是当我向下滚动或单击菜单项时 活动类不会切换 不确定我做错了什么
  • 重新采样每日数据以获得每月数据帧?

    我有一个每日数据框 我正在尝试resample以获得每月的Open High Low Close daily df Open High Low Last Close Date 2010 01 04 55 15 57 55 54 55 57