Python Pandas,仅在特定时间重新采样

2024-03-18

我的 pandas 版本是 0.18,我有一个如下所示的分钟数据:

Time                              
2009-01-30 09:30:00  85.11  100.11
2009-01-30 09:39:00  84.93  100.05
2009-01-30 09:40:00  84.90  100.00
2009-01-30 09:45:00  84.91   99.94
2009-01-30 09:48:00  84.81   99.90
2009-01-30 09:55:00  84.78  100.00
2009-01-30 09:56:00  84.57  100.10
2009-01-30 09:59:00  84.25  100.41
2009-01-30 10:00:00  84.32  100.60
2009-01-30 10:06:00  84.23  101.49
2009-01-30 10:09:00  84.15  101.47

我只想使用 9:30 和 16:00 之间的数据,并以 78 分钟的间隔重新采样数据(即将 9:30 到 16:00 之间的时间分成 5 个相等的部分)。我的代码如下所示:

Data= Data.between_time('9:30','16:00')
tframe = '78T'
hourlym = Data.resample(tframe, base=30).mean()

输出:

Time                                      
2009-01-30 08:18:00  85.110000  100.110000
2009-01-30 09:36:00  83.950645  101.984516
2009-01-30 10:54:00  83.372294  103.093824
2009-01-30 12:12:00  83.698624  102.566897
2009-01-30 13:30:00  83.224397  103.076667
2009-01-30 14:48:00  82.641167  104.114667
2009-01-30 16:06:00        NaN         NaN
2009-01-30 17:24:00        NaN         NaN
2009-01-30 18:42:00        NaN         NaN

正如你所看到的,pandas 忽略了我的基本参数,我的输出表从 8:18 开始,我相信这是因为 pandas 寻求如何正确地将我的整个数据分割成 78 分钟,并且因为你不能将 24 小时平均分割成 78 分钟,所以会发生这种奇怪的行为。是否可以强制 pandas 从第一天 9:30 开始重新采样?或者在重新采样时仅在特定时间工作?


The base参数应用于午夜,因此在您的情况下,采样从 00:30 开始,并从那里添加 78 分钟的增量。我看到两个选择。

Option 1:

弄清楚是什么base应用到午夜应该是为了到达 9:30(在这种情况下24):

Data.resample(tframe, base=24)

Option 2:

自己生成日期时间索引,然后重新采样reindex:

index = pd.date_range('2009-01-30 09:30:00', '2009-01-30 16:00:00', freq='78min')
Data.reindex(index=index)

EDIT:对于多天,您将需要自己生成时间戳。

index_date = pd.date_range('2016-04-01', '2016-04-04')
index_date = pd.Series(index_date)
index_time = pd.date_range('09:30:00', '16:00:00', freq='78min')
index_time = pd.Series(index_time.time)

index = index_date.apply(
    lambda d: index_time.apply(
        lambda t: datetime.combine(d, t)
        )
    ).unstack().sort_values().reset_index(drop=True)

以下是代码的作用:

  • 生成您感兴趣的日期和时间,并将它们分成系列以获取apply财产。
  • 使用嵌套的“applies”,循环日期和时间并将它们组合成一个日期时间对象。
  • 输出是一个方形数据框(每个日期一列),所以我unstack并对时间戳进行排序(最后重置索引以摆脱沿途生成的无用索引)。

所结果的index最初可用于重新索引,如选项 2 所示:

Data.reindex(index=index)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Pandas,仅在特定时间重新采样 的相关文章

随机推荐

  • 通过引用返回大数据还是作为函数返回?

    今天在工作中 我与拼贴画就在范围之间传递大数据进行了争论 误解是 在两个作用域之间传递时 引用使用的内存 CPU 使用量较少 我们建立了一个概念证明 谁是正确的 所以 function by return dummy null dummy
  • ProGuard:保持私有内部类

    如何在 ProGuard 中保留私有内部类 我已经在我的 proguard cfg 中使用 表示内部类 下面的代码 但它不起作用 keep public class com xxx droid activity LoginActivity
  • 编译器内部如何解决C++中的钻石问题?

    我们知道可以使用虚拟继承来解决钻石问题 例如 class Animal base class int weight public int getWeight return weight class Tiger public Animal c
  • Android:如何判断软键盘是否显示?

    困境如下 我正在显示一个屏幕 其中有 3 个输入字段和一个选项卡内有 2 个按钮 总共有 3 个选项卡 它们位于屏幕底部 这 2 个按钮设置在屏幕的左下角和右下角 选项卡的正上方 当我单击输入字段时 选项卡和按钮都会被推到键盘顶部 我只想向
  • UIButton setAttributedTitle:forState:未显示

    我试图在自定义 UIButton 上的标题上添加下划线 但按照发现的示例here https stackoverflow com a 15930032 329900 我无法让它显示在屏幕上 这是我尝试使用的代码 NSMutableAttri
  • 我应该使用哪个高级 API 来管理 iOS 上的 UDP 套接字? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在章节 使用套接字和流 https developer apple com library mac d
  • 警告错误 6002:表/视图没有定义主键

    此主题已多次出现 但没有答案让我选择如何在 EF 中避免此问题 我的警告 警告错误 6002 表 视图 ADContainersWithEnvironmentsView 没有定义主键 关键已经推断出来了 定义被创建为只读表 视图 基本上 我
  • 自动调整闪亮的图表大小

    如何在闪亮的情况下自动调整 rChart 绘图的大小 我想使绘图适合用户的屏幕 就像使用 renderPlot 对常规绘图所做的那样 这是一个最小的例子 Server R require rCharts shinyServer functi
  • 可移植类库反射

    我目前正在尝试将 Xamarin iOS 应用程序库转换为 PCL 配置文件 78 我有这段代码无法编译 public static void RegisterAllCommandHandlers IEnumerable
  • 加速 jQuery AutoComplete(不可避免的长列表)

    今天下午早些时候 我开始了加速 jQuery 自动完成的旅程 并认为开始可能是个好主意内存缓存一切 正如本文所建议的 加快自动完成速度 https stackoverflow com questions 5820741 jquery ui
  • 证明对于以下每个,g(n) 都是 O(g(n)) [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 2 sqrt log n is O n 4 3 n 4 3 is O n log n 3 n log n 3 is O n log n
  • Android 上具有多个模块的 Firebase 推送通知

    我目前正在尝试在我们的应用程序中实现推送通知 所以我们有三个模块 App 1 Logic App 2 我显然给了他们名字 应用程序 1 和 2 依赖于逻辑模块 该模块包含两个应用程序的所有逻辑 现在 我希望向登录应用程序 1 或应用程序 2
  • 如何保存动态创建的文本框及其值

    我正在开发一个需要保存动态创建的文本框的项目 我需要在第二次运行应用程序时显示文本框的数据 这是我的代码 public partial class Form1 Form public Form1 InitializeComponent st
  • JavaScript 提交期间未传递 URL 参数

    我正在尝试从 javascript 提交表单 表单已提交 但参数未传递 下面是我的代码
  • Mongocxx 无法使用 SSL 连接到 mongoDB

    我完成了以下教程 https medium com rajanmaharjan secure your mongodb connections ssl tls 92e2addb3c89 https medium com rajanmahar
  • 什么是更新每用户系统参数?

    在我的服务中 我需要在更改登录屏幕保护程序超时后发出 刷新 在做研究的同时 我不断地寻找参考资料 http social technet microsoft com Forums windows en US c5979d78 9732 41
  • 通过 Javascript 访问 Twitter

    我正在构建一个通过以下方式使用 twitter 的网络应用程序 1 用户可以使用 Twitter 登录 即用户对应用程序进行身份验证和授权 我得到以下内容 我存储到服务器的 oauth token secret OAUTH TOKEN SE
  • Android:使用java反射更改私有静态最终字段

    使用 Java 反射更改私有静态最终字段 https stackoverflow com questions 3301635 change private static final field using java reflection 我
  • 将 Web Workers 捆绑为 npm 包的组成部分,并具有单个文件 Webpack 输出

    我正在编写一个 npm 包 它是流行库 leafletjs 的插件 我正在使用 webpack 来捆绑包 我希望这个包能够根据命令生成和销毁一些网络工作者 Web Worker 代码是我的源文件的一部分 但我希望能够将我的包作为 npm 模
  • Python Pandas,仅在特定时间重新采样

    我的 pandas 版本是 0 18 我有一个如下所示的分钟数据 Time 2009 01 30 09 30 00 85 11 100 11 2009 01 30 09 39 00 84 93 100 05 2009 01 30 09 40