在 pandas 数据框中插入缺少的工作日并用 NaN 填充它们

2023-12-01

我正在尝试在时间序列数据框中插入缺少的工作日,例如

import pandas as pd
from pandas.tseries.offsets import *
df = pd.DataFrame([['2016-09-30', 10, 2020], ['2016-10-03', 20, 2424], ['2016-10-05', 5, 232]], columns=['date', 'price', 'vol']).set_index('date')
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')

数据如下:

Out[300]: 
            price   vol
date                   
2016-09-30     10  2020
2016-10-03     20  2424
2016-10-05      5   232

我可以轻松创建一系列工作日pd.date_range()

pd.date_range('2016-09-30', '2016-10-05', freq=BDay())
Out[301]: DatetimeIndex(['2016-09-30', '2016-10-03', '2016-10-04', '2016-10-05'], dtype='datetime64[ns]', freq='B')

基于该 DateTimeIndex 我想在我的df并用 NaN 填充列值,这样我得到:

Out[300]: 
            price   vol
date                   
2016-09-30     10  2020
2016-10-03     20  2424
2016-10-04     NaN  NaN
2016-10-05      5   232

是否有捷径可寻?谢谢!


或者,您可以使用pandas.DataFrame.resample(),指定“B”为工作日无需指定开始或结束日期序列,只要数据帧维护日期时间索引

df = df.resample('B').sum()

#             price     vol
# date                     
# 2016-09-30   10.0  2020.0
# 2016-10-03   20.0  2424.0
# 2016-10-04    NaN     NaN
# 2016-10-05    5.0   232.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pandas 数据框中插入缺少的工作日并用 NaN 填充它们 的相关文章

随机推荐

  • Bash 脚本错误:[i:找不到命令

    该程序应该接受用户的一个数字并打印那么多素数 由于某种原因该程序无法运行 我是 bash 脚本新手 这是我的第一个程序 在我看来 一切似乎都是正确的 请告诉我哪里错了 echo Enter num read n i 2 j 2 for i
  • 声明可变长度数组[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的可变长度数组 我正在尝试形成一个数组 其大小由用户输入的另一个变量控制 我是 C 编码的初学者 我使用的是 Visual Studio 2008 专业编译器 这是编译器显示错误的代码 doub
  • DocuSign:Rest API C# 为签名者获取永久链接

    我正在使用 DocuSign 的 REST API 以嵌入式签名模式创建信封 使用 CreateRecipientView 函数我只得到一个临时链接 但我更希望获得像通知邮件中那样的永久链接 我怎样才能得到这个链接 URL 使用 DocuS
  • 如何为旧的 AMP 页面制定 301 重定向规则?

    我的网站使用旧的 AMP 插件 其中添加了 amp 在每个帖子 页面 URL 之后 以我家为例 https example com而 amp 是https example com amp 我想知道我可以在其中添加什么规则 htaccess文
  • JavaFX 控制器注入不起作用

    我有两个fxml文件 我将它们与include陈述 主要的 fxml文件看起来像这样
  • 如何在 VS Code 上获得 WebdriverIO 自动完成功能

    有没有办法让 VS Code 的 webdriverio 自动完成功能 其他代码编辑器 例如 Intellij 提供类似设置 gt 首选项 gt 语言和框架 gt JavaScript gt 库的功能 从那里我们可以使用 webdriver
  • UDP 数据接收时的 Python 套接字错误。 (10054)

    我目前在使用 UDP 和 Python 套接字模块时遇到问题 我们有服务器和客户端 当我们向用户发送数据时就会出现问题 用户可能通过客户端崩溃 ISP 断开连接或其他不正确的方法关闭了与服务器的连接 因此 可以将数据发送到关闭的套接字 当然
  • 在 volley StringRequest 上禁用 Javascript

    我的 MainActivity 中有一个像这样的齐射 StringRequest StringRequest strReq new StringRequest Method POST G serverLevelAdress new List
  • canvas.toDataUrl 返回“数据:;”当canvas.width/height太大时

    我需要做一个 svg 导出 png 图像功能 首先 我生成 svg 到 base64 也使用 base64 标头类型svg xml then var image new Image image src base64Code image on
  • 如何在 Laravel PHP 中从文本创建图像而不需要任何外部库

    我正在使用此代码从文本在 Core PHP 中创建图像 header Content type image png text email protected string text font 3 width ImageFontWidth f
  • Ember.js:使用 @each 观察数组属性不起作用

    我的理解是 观察 each 意味着我正在观察数组中任何属性的任何更改 但它似乎不起作用 例如 App ArrayProxy Ember ArrayProxy extend i 0 foo function console log foo c
  • 通过css重新排列div

    我有三个 3 子 div 分别具有类 span2 span7 和 span3 当我的浏览器宽度低于 763px 时 我希望它按照 span2 span3 和 span7 的顺序排列 我将如何通过CSS做到这一点 这是我的初始代码 div c
  • 在启动期间从读取文件加载数据,然后处理新文件并从映射中清除旧状态

    我正在开发一个项目 在启动过程中 我需要读取某些文件并将其存储在地图的内存中 然后定期查找新文件 如果有 然后用此替换启动期间地图中内存中的所有文件新数据 基本上每次如果有一个新文件full state然后我想将内存中的映射对象刷新到这个新
  • PLSQL动态查询

    我有一个表 A 其中有列A它将表名作为值 所有这些表都有一个公共列C 我需要每个表的该列的最大值 我尝试使用动态 SQL 但出现错误 请建议 DECLARE query1 VARCHAR2 100 c table VARCHAR2 40 c
  • CSS 圆形边框填充动画

    我有一个 css 文件 它可以完美地制作圆形边框填充动画 其宽度和高度均为 100 像素 但我只需要在 50px 宽度和高度的圆圈中使用相同的动画 我尝试了很多次来最小化尺寸 但圆圈没有通过动画正确修复 请帮我缩小这个圈子 我的需求 宽度
  • 当我使用任务管理器终止程序时收到什么消息

    所以我有一个 C dll 在我的 C 应用程序中使用它来监视 Windows 消息 我想知道 WM CLOSE 和 WM QUERYENDSESSION 是否已发送 因为我无法从 C 应用程序中看到它们 如果我收到这些消息之一 我想对我的文
  • 如何在microsoft azure上的django项目中配置celery-redis?

    我在 azure 中部署了这个 django 定位器项目 我的 Redis 缓存主机名 DNS 是 mycompany azure microsoft net 我在 azure 中创建了它 但不确定在哪里可以找到 redis 服务器的密码
  • 无法在 PowerShell 中获取事件数据字段数据

    我正在尝试将事件 4625 中的特定数据字段 FailureReason 获取到 CSV 字段 我用以下代码分析了事件模式 Get WinEvent ListProvider Microsoft Windows Security Audit
  • 检测 kiosk 应用程序启动的 Citrix 会话的终止

    我正在开发一个信息亭应用程序 它为用户提供了 Citrix 连接的选择 其想法是 用户选择 kiosk 应用程序提供的连接 然后 kiosk 启动程序通过运行类似于以下内容的命令来启动所选连接 C Program Files Citrix
  • 在 pandas 数据框中插入缺少的工作日并用 NaN 填充它们

    我正在尝试在时间序列数据框中插入缺少的工作日 例如 import pandas as pd from pandas tseries offsets import df pd DataFrame 2016 09 30 10 2020 2016