对 Pandas 中的组进行优雅的重采样

2024-04-05

对于给定的 pandas 数据框,称为full_df看起来像

  index   id   timestamp    data  
 ------- ---- ------------ ------ 
      1    1   2017-01-01   10.0  
      2    1   2017-02-01   11.0  
      3    1   2017-04-01   13.0  
      4    2   2017-02-01    1.0  
      5    2   2017-03-01    2.0  
      6    2   2017-05-01    9.0  

开始日期和结束日期(以及开始日期和结束日期之间的时间增量)各不相同。

但我需要一个 id 明智的重新采样版本(添加的行标记为*)

  index   id   timestamp    data       
 ------- ---- ------------ ------ ---- 
      1    1   2017-01-01   10.0       
      2    1   2017-02-01   11.0       
      3    1   2017-03-01    NaN   *   
      4    1   2017-04-01   13.0       
      5    2   2017-02-01    1.0       
      6    2   2017-03-01    2.0       
      7    2   2017-04-01    NaN   *   
      8    2   2017-05-01    9.0  

因为数据集非常大,我想知道是否有比这更有效的方法

  1. Do full_df.groupby('id')
  2. 为每组做df

    df.index = pd.DatetimeIndex(df['timestamp'])
    all_days = pd.date_range(df.index.min(), df.index.max(), freq='MS')
    df = df.reindex(all_days)
    
  3. 使用新索引再次组合所有组

这很耗时而且不太优雅。有任何想法吗?


Using resample

In [1175]: (df.set_index('timestamp').groupby('id').resample('MS').asfreq()
              .drop(['id', 'index'], 1).reset_index())
Out[1175]:
   id  timestamp  data
0   1 2017-01-01  10.0
1   1 2017-02-01  11.0
2   1 2017-03-01   NaN
3   1 2017-04-01  13.0
4   2 2017-02-01   1.0
5   2 2017-03-01   2.0
6   2 2017-04-01   NaN
7   2 2017-05-01   9.0

Details

In [1176]: df
Out[1176]:
   index  id  timestamp  data
0      1   1 2017-01-01  10.0
1      2   1 2017-02-01  11.0
2      3   1 2017-04-01  13.0
3      4   2 2017-02-01   1.0
4      5   2 2017-03-01   2.0
5      6   2 2017-05-01   9.0

In [1177]: df.dtypes
Out[1177]:
index                 int64
id                    int64
timestamp    datetime64[ns]
data                float64
dtype: object
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对 Pandas 中的组进行优雅的重采样 的相关文章

  • 用缺失的日期填充其他列 Nan Pandas DataFrame

    我实际上是从几个 Excel 文件中提取数据来监控我的每日卡路里摄入量 我设法使用列表理解来生成日期 我尝试使用合并或连接 但它不起作用 ValueError 您正在尝试合并对象和 float64 列 date list 2021 05 2
  • 为什么删除临时文件时出现WindowsError?

    我创建了一个临时文件 向创建的文件添加了一些数据 已保存 然后尝试将其删除 但我越来越WindowsError 编辑后我已关闭该文件 如何检查哪个其他进程正在访问该文件 C Documents and Settings Administra
  • Pandas:GroupBy 到 DataFrame

    参考这个关于 groupby 到 dataframe 的非常流行的问题 https stackoverflow com questions 10373660 converting a pandas groupby object to dat
  • 如何检查python xlrd库中的excel文件是否有效

    有什么办法与xlrd库来检查您使用的文件是否是有效的 Excel 文件 我知道还有其他库可以检查文件头 我可以使用文件扩展名检查 但为了多平台性我想知道是否有任何我可以使用的功能xlrd库本身在尝试打开文件时可能会返回类似 false 的内
  • Python 2.7 中的断言对我来说不起作用示例assertIn

    我的 Mac 上安装了 python 2 7 通过在终端中运行 python v 进行验证 当我尝试使用任何新的 2 7 断言方法时 我收到 AtributeError 我看过http docs python org 2 library u
  • 工作日重新订购 Pandas 系列

    使用 Pandas 我提取了一个 CSV 文件 然后创建了一系列数据来找出一周中哪几天崩溃最多 crashes by day bc DAY OF WEEK value counts 然后我将其绘制出来 但当然它按照与该系列相同的排名顺序绘制
  • sklearn 中的 pca.inverse_transform

    将我的数据拟合后 X 我的数据 pca PCA n components 1 pca fit X X pca pca fit transform X 现在 X pca 具有一维 当我根据定义执行逆变换时 它不是应该返回原始数据 即 X 二维
  • 如果未引发异常,则通过 Python 单元测试

    在Python中unittest框架 是否有一种方法可以在未引发异常的情况下通过单元测试 否则会因 AssertRaise 而失败 如果我正确理解你的问题 你could做这样的事情 def test does not raise on va
  • 在没有模型的情况下将自定义页面添加到 django admin

    我正在尝试在没有模型关联的情况下向管理员添加自定义页面 这就是我迄今为止所取得的成就 class MyCustomAdmin AdminSite def get urls self from django conf urls import
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • 使用Python计算目录的大小?

    在我重新发明这个特殊的轮子之前 有没有人有一个很好的例程来使用 Python 计算目录的大小 如果例程能够很好地以 Mb Gb 等格式格式化大小 那就太好了 这会遍历所有子目录 总结文件大小 import os def get size s
  • 如何在 pandas 中使用 read_fwf 跳过空行?

    I use pandas read fwf http pandas pydata org pandas docs stable generated pandas read fwf htmlPython pandas 0 19 2 中的函数读
  • 使用 Pandas 计算 delta 列

    我有一个数据框 如下所示 Name Variable Field A 2 3 412 A 2 9 861 A 3 5 1703 B 3 5 1731 A 4 0 2609 B 4 0 2539 A 4 6 2821 B 4 6 2779 A
  • ANTLR 获取并拆分词法分析器内容

    首先 对我的英语感到抱歉 我还在学习 我为我的框架编写 Python 模块 用于解析 CSS 文件 我尝试了 regex ply python 词法分析器和解析器 但我发现自己在 ANTLR 中 第一次尝试 我需要解析 CSS 文件中的注释
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • 双击打开 ipython 笔记本

    相关文章 通过双击 osx 打开 ipython 笔记本 https stackoverflow com questions 16158893 open an ipython notebook via double click on osx
  • python 线程安全可变对象复制

    Is 蟒蛇的copy http docs python org 2 library copy html模块线程安全吗 如果不是 我应该如何在 python 中以线程安全的方式复制 deepcopy 可变对象 蟒蛇的GIL http en w
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这

随机推荐

  • 多久轮询一次 wifi 信号强度?

    理想情况下 我希望近乎实时地监控无线网络的信号强度 比如每 100 毫秒一次 但如此高的频率可能有点过大了 我正在使用托管无线网络 http managedwifi codeplex com 库轮询 RSSI 我实例化一个WlanClien
  • 如何更改Linux中每个用户的默认最大进程数

    我在更改 Linux 中用户的默认进程数时遇到了问题 我尝试过编辑 etc security limits conf文件并添加以下行 malintha hard nproc 10000 保存后我尝试在终端上执行以下命令 ulimit u 它
  • 固定位置水平滚动条

    我有一个很长的 div 比方说比屏幕长 带有一个水平滚动条 出现在 div 的底部 我希望水平滚动条出现在窗口的底部 而不是出现在 div 的底部 我的情况类似于这把小提琴 http jsfiddle net xaTe9 1 而且我真的无法
  • Spinner:当所选项目保持不变时,不会调用 onItemSelected

    我有一个OnItemSelectedListener for my Spinner 但当所选项目与前一项相同时 不会调用它 显然是OnClickListener不是一个选项Spinner 我需要捕捉用户每次点击某个项目的时间 任何想法 也许
  • 在磁盘上存储密码的安全策略

    我正在构建一套需要定期访问数据库的批处理作业 在 Solaris 10 计算机上运行 由于 不可更改的 设计限制 我们需要使用特定的程序来连接它 该接口要求我们通过命令行传递纯文本密码才能连接到数据库 这是一种糟糕的安全做法 但我们仍坚持这
  • 文件名中 TCL 通配符/glob 的使用

    我有这样的代码 proc myProc first last for set i first i lt last incr i set i cur PlainText i
  • 有没有办法获取特定城市的所有 Facebook 活动?

    我可以获取特定城市的所有 Facebook 活动吗 我所需要的只是事件 ID 没有别的 它应该是所有事件 公共 而不仅仅是某人的事件 Facebook 会让我们获取这些信息吗 Elmcity 对活动标题中的关键字进行简单搜索 例如尝试 兰开
  • 使滚动条仅在将鼠标悬停在 Div 上时可见?

    我试图弄清楚如何拥有一个可滚动的 div 仅在悬停时显示其滚动条 示例是 Google 图片搜索 在下图中 您可以看到左侧边栏在将鼠标悬停在其上方之前似乎无法滚动 这可以通过 CSS 实现还是需要 Javascript 如果可能的话 也许一
  • NodeJS 从 AWS S3 存储桶下载文件

    我正在尝试在 NodeJS Express 中创建一个端点 用于从我的 AWS S3 存储桶下载内容 它运行良好 我可以在客户端下载文件 但我也可以在 网络 选项卡中看到流预览 这很烦人 QUESTION 我想知道我所做的是否正确并且是一个
  • Rundeck - 我创建的用于运行 python 脚本的作业调用不同的 python

    我对使用 Rundeck 还很陌生 我的工作应该是执行一个 python 文件 只是为了给您一个概述 我的设备有 python 3 8 5 和 3 7 Rundeck 使用版本 3 7 即使在我的环境变量中我将 PY HOME 设置为版本
  • 通过 Facebook Open Graph API 搜索视频

    我知道我们可以使用以下方法在 Open Graph API 中搜索公共对象 例如帖子 事件 签到 但是我无法搜索视频对象 有没有办法使用标题或描述在 Facebook 中搜索视频 您可以通过 FQL 使用某些属性搜索视频 http deve
  • background.html 与 background.js - chrome 扩展

    我在这里真的很困惑 我想了解 chrome 扩展的文件架构 我正在阅读这篇文档 https developer chrome com extensions overview arch https developer chrome com e
  • 尝试将服务注入角度组件时出错“异常:无法解析组件的所有参数”,为什么?

    我已经用 Angular 构建了一个基本的应用程序 但遇到了一个奇怪的问题 我无法将服务注入到我的一个组件中 然而 它可以很好地注入我创建的其他三个组件中的任何一个 对于初学者来说 这是服务 import Injectable from a
  • Node.js 捕获生成后抛出的 ENOMEM 错误

    我的 Node js 脚本因使用时抛出 ENOMEM 内存不足 errnoException 而崩溃spawn http nodejs org api child process html 错误 child process js 935 t
  • 在 Altair 中将图例分成多列

    抱歉无法提供大量代码 一切都是互连的 现在不可能 我的问题是我创建了一个点图作为 交互式图例 legend alt Chart source mark point encode y alt Y STATE axis alt Axis ori
  • 从列表中删除对象[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如果我需要从 List 中删除一个对象 您更喜欢删除哪一个 假设字符串 abc linkedList 还是 ArrayList 我认为 两者
  • 解析具有未定义值的 JSON?

    可能的重复 解析或修复具有特殊 未定义 值的 JSON https stackoverflow com questions 59304404 parsing or fixing jsons with special undefined va
  • Hibernate:继承和关系映射+泛型

    我将 spring data JPA 与 hibernate 一起使用 我很难让我的继承和关系映射正常工作 Entity Inheritance strategy InheritanceType SINGLE TABLE Table nam
  • Unity2D - 如何在 2D 游戏中围绕圆移动和旋转游戏对象?

    我正在尝试围绕目标行星移动和旋转一些云 目前只是一个圆圈 我把动作搞定了 但旋转部分我真的很挣扎 我希望它按其在圆上的位置成比例旋转 但我一直试图猜测正确的数字 这是代码 public class CloudMovement MonoBeh
  • 对 Pandas 中的组进行优雅的重采样

    对于给定的 pandas 数据框 称为full df看起来像 index id timestamp data 1 1 2017 01 01 10 0 2 1 2017 02 01 11 0 3 1 2017 04 01 13 0 4 2 2