Pandas如何按列按间隔分割数据框

2024-05-01

我有一个巨大的数据框,其中有一个名为的日期时间类型列dt,数据框排序基于dt已经。我想根据以下内容将数据帧拆分为多个数据帧dt,每个数据帧包含行1 hr range.

Split

   dt                    text
0  20160811 11:05        a
1  20160811 11:35        b
2  20160811 12:03        c
3  20160811 12:36        d
4  20160811 12:52        e
5  20160811 14:32        f

into

   dt                    text
0  20160811 11:05        a
1  20160811 11:35        b
2  20160811 12:03        c

   dt                    text
0  20160811 12:36        d
1  20160811 12:52        e

   dt                    text 
0  20160811 14:32        f

你需要groupby http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html通过列的第一个值的差异dt转换成hour by astype http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.astype.html:

S = pd.to_datetime(df.dt)
for i, g in df.groupby([(S - S[0]).astype('timedelta64[h]')]):
        print (g.reset_index(drop=True))

               dt text
0  20160811 11:05    a
1  20160811 11:35    b
2  20160811 12:03    c
               dt text
0  20160811 12:36    d
1  20160811 12:52    e
               dt text
0  20160811 14:32    f

List comprehension解决方案:

S = pd.to_datetime(df.dt)

print ((S - S[0]).astype('timedelta64[h]'))
0    0.0
1    0.0
2    0.0
3    1.0
4    1.0
5    3.0
Name: dt, dtype: float64

L = [g.reset_index(drop=True) for i, g in df.groupby([(S - S[0]).astype('timedelta64[h]')])]

print (L[0])
               dt text
0  20160811 11:05    a
1  20160811 11:35    b
2  20160811 12:03    c

print (L[1])
               dt text
0  20160811 12:36    d
1  20160811 12:52    e

print (L[2])
               dt text
0  20160811 14:32    f

旧的解决方案,由hour:

您可以使用groupby http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html by dt.hour http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.hour.html,但首先需要转换dt to_datetime http://pandas.pydata.org/pandas-docs/stable/generated/pandas.to_datetime.html:

for i, g in df.groupby([pd.to_datetime(df.dt).dt.hour]):
    print (g.reset_index(drop=True))

               dt text
0  20160811 11:05    a
1  20160811 11:35    b
               dt text
0  20160811 12:03    c
1  20160811 12:36    d
2  20160811 12:52    e
               dt text
0  20160811 14:32    f

List comprehension解决方案:

L = [g.reset_index(drop=True) for i, g in df.groupby([pd.to_datetime(df.dt).dt.hour])]

print (L[0])
               dt text
0  20160811 11:05    a
1  20160811 11:35    b

print (L[1])
               dt text
0  20160811 12:03    c
1  20160811 12:36    d
2  20160811 12:52    e

print (L[2])
               dt text
0  20160811 14:32    f

Or use list comprehension带转换柱dt to datetime:

df.dt = pd.to_datetime(df.dt)
L =[g.reset_index(drop=True) for i, g in df.groupby([df['dt'].dt.hour])]

print (L[1])
                   dt text
0 2016-08-11 12:03:00    c
1 2016-08-11 12:36:00    d
2 2016-08-11 12:52:00    e

print (L[2])
                   dt text
0 2016-08-11 14:32:00    f

如果需要分割dates and hours:

#changed dataframe for testing
print (df)
               dt text
0  20160811 11:05    a
1  20160812 11:35    b
2  20160813 12:03    c
3  20160811 12:36    d
4  20160811 12:52    e
5  20160811 14:32    f

serie = pd.to_datetime(df.dt)
for i, g in df.groupby([serie.dt.date, serie.dt.hour]):
    print (g.reset_index(drop=True))
               dt text
0  20160811 11:05    a
               dt text
0  20160811 12:36    d
1  20160811 12:52    e
               dt text
0  20160811 14:32    f
               dt text
0  20160812 11:35    b
               dt text
0  20160813 12:03    c    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas如何按列按间隔分割数据框 的相关文章

  • 如何检查python xlrd库中的excel文件是否有效

    有什么办法与xlrd库来检查您使用的文件是否是有效的 Excel 文件 我知道还有其他库可以检查文件头 我可以使用文件扩展名检查 但为了多平台性我想知道是否有任何我可以使用的功能xlrd库本身在尝试打开文件时可能会返回类似 false 的内
  • Python - 来自 .进口

    我第一次尝试图书馆 我注意到解决图书馆内导入问题的最简单方法是使用如下结构 from import x from some module import y 我觉得这件事有些 糟糕 也许只是因为我不记得经常看到它 尽管公平地说我还没有深入研究
  • Python 2.7 中的断言对我来说不起作用示例assertIn

    我的 Mac 上安装了 python 2 7 通过在终端中运行 python v 进行验证 当我尝试使用任何新的 2 7 断言方法时 我收到 AtributeError 我看过http docs python org 2 library u
  • Mac OS X 中文件系统的 Unicode 编码在 Python 中不正确?

    在 OS X 和 Python 中处理 Unicode 文件名有点困难 我试图在代码中稍后使用文件名作为正则表达式的输入 但文件名中使用的编码似乎与 sys getfilesystemencoding 告诉我的不同 采取以下代码 usr b
  • sklearn 中的 pca.inverse_transform

    将我的数据拟合后 X 我的数据 pca PCA n components 1 pca fit X X pca pca fit transform X 现在 X pca 具有一维 当我根据定义执行逆变换时 它不是应该返回原始数据 即 X 二维
  • Python3.0 - 标记化和取消标记化

    我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段 import io import tokenize src foo bar src bytes src encode src io BytesIO src src l
  • Keras:如何保存模型或权重?

    如果这个问题看起来很简单 我很抱歉 但是阅读 Keras 保存和恢复帮助页面 https www tensorflow org beta tutorials keras save and restore models https www t
  • 如何使用文本相似性删除 pandas 数据框中相似(不重复)的行?

    我有数千个数据 这些数据可能相似也可能不相似 使用 python 的默认函数 drop duplicates 并没有真正的帮助 因为它们只检测相似的数据 例如 如果我的数据包含类似以下内容怎么办 嗨 早上好 嗨 早上好 Python 不会将
  • Django 的 request.FILES 出现 UnicodeDecodeError

    我在视图调用中有以下代码 def view request body u for filename f in request FILES items body body Filename filename n f read n 在某些情况下
  • Python新式类和__subclasses__函数

    有人可以向我解释为什么这有效 在 Python 2 5 中 class Foo object pass class Bar Foo pass print Foo subclasses 但这不是 class Foo pass class Ba
  • .pyx 文件出现未知文件类型错误

    我正在尝试构建一个包含 pyx 文件的 Python 包 pyregion 但在构建过程中出现错误 检查以下输出 python setup py build running build running build py creating b
  • 使用 python 绘制正值小提琴图

    我发现小提琴图信息丰富且有用 我使用 python 库 seaborn 然而 当应用于正值时 它们几乎总是在低端显示负值 我发现这确实具有误导性 尤其是在处理现实数据集时 在seaborn的官方文档中https seaborn pydata
  • 通过索引访问Python字典的元素

    考虑一个像这样的字典 mydict Apple American 16 Mexican 10 Chinese 5 Grapes Arabian 25 Indian 20 例如 我如何访问该字典的特定元素 例如 我想在对 Apple 的第一个
  • Matplotlib 中 x 轴标签的频率和旋转

    我在下面编写了一个简单的脚本来使用 matplotlib 生成图形 我想将 x tick 频率从每月增加到每周并轮换标签 我不知道从哪里开始 x 轴频率 我的旋转线产生错误 TypeError set xticks got an unexp
  • ANTLR 获取并拆分词法分析器内容

    首先 对我的英语感到抱歉 我还在学习 我为我的框架编写 Python 模块 用于解析 CSS 文件 我尝试了 regex ply python 词法分析器和解析器 但我发现自己在 ANTLR 中 第一次尝试 我需要解析 CSS 文件中的注释
  • Anaconda 无法导入 ssl 但 Python 可以

    Anaconda 3 Jupyter笔记本无法导入ssl 但使用Atom终端导入ssl没有问题 我尝试在 Jupyter 笔记本中导入 ssl 但出现以下错误 C ProgramData Anaconda3 lib ssl py in
  • SocketIO + Flask 检测断开连接

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

    我有以下 2 个型号 现在我需要将模型 A 内联到模型 B 的页面上 模型 py class A models Model name models CharField max length 50 class B models Model n
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这
  • 如何为不同操作系统/Python 版本编译 Python C/C++ 扩展?

    我注意到一些成熟的Python库已经为大多数架构 Win32 Win amd64 MacOS 和Python版本提供了预编译版本 针对不同环境交叉编译扩展的标准方法是什么 葡萄酒 虚拟机 众包 我们使用虚拟机和Hudson http hud

随机推荐

  • 模拟三星 Galaxy Tab

    我想使用新的 Samsung Galaxy Tab 平板电脑测试我的应用程序 我应该在模拟器中设置什么参数来模拟该设备 我应该设置什么分辨率和密度 如何表明这是一个大屏幕设备 这款平板电脑支持哪些硬件 最大堆大小是多少 哪个安卓版本 UPD
  • 在Windows应用程序中创建一个文本文件

    我想打开一个文本文件并向该文件写入一些数据 这是我的代码 FileStream fs1 new FileStream D Yourfile txt FileMode OpenOrCreate FileAccess Write StreamW
  • ngClass多次调用方法[重复]

    这个问题在这里已经有答案了 我创建了一个方法并将其附加到 ngClass 以根据条件添加两种样式 我还将数字作为参数传递以在 switch case 中使用 组件 html div class circle div class circle
  • 用于在管道传输结果时链接异步操作的 GCD 模式

    来自 JavaScript 世界 使用异步 javascript 承诺 我相信在 Swift 中使用 GCD 异步队列也能完成同样的事情 你能给我举一个例子 其中在队列中指定了 2 到 3 个异步函数 其中一个异步操作将结果提供给第二个 第
  • 为什么 Chart.js 画布不考虑容器元素的填充?

    我将 Chart js 与简单的折线图一起使用 但 Chart js 计算的宽度和高度属性似乎基于父元素的总宽度和高度 忽略填充 var options maintainAspectRatio false responsive true v
  • 添加月份时的 Java 日历/日期问题

    如果我们在当前日期 2013 年 5 月 31 日星期五 18 33 00 IST 2013 中添加 1 个月 则会产生 2013 年 6 月 30 日星期日 18 33 00 国际标准时间 如果我们减去 1 个月 则得出 2013 年 5
  • BigQuery Crashlytics - 无崩溃的用户/会话

    我已将 firebase crashlytics 数据链接到 bigquery 并设置 google 提供的数据工作室模板 除了我的仪表板所需的最重要的指标之外 还有很多重要的数据 无崩溃用户 and 无崩溃会话以百分比表示 在我可以用来计
  • ExtJs 5 网格存储/视图模型绑定:无法修改 ext-empty-store

    我正在为这个拔掉头发 我有一个带有一些网格 一个商店和一个 viewModel 的视图 我需要不同网格中商店的不同过滤版本 因此我尝试将每个过滤商店绑定到网格 现在我什至无法让商店加载到网格中 我的代码如下所示 Store Ext defi
  • Java 中的额外导入会减慢代码加载时间吗?

    向 Java 代码中添加更多 import 语句是否可能会减慢将类加载到 JVM 中所需的时间 不 导入仅在编译中用于查找类引用 添加未使用的导入 它们不会执行任何操作 换一种方式 import java util 只是意味着你可以写 Ma
  • GQL中有OR运算符吗?

    我不知道这里是否有人问过这个问题 我看到了几个关于 like 运算符的问题 但我不确定这是否是我正在寻找的 抱歉我在这方面是菜鸟 但我正在从 MySQL 迁移到 Google App Engine 并且想知道 GQL 中是否有类似于 MyS
  • C++:如何将存储在局部变量中的函数指针作为模板参数传递

    using namespace std float test1 float i return i i int test2 int i return i 9 struct Wrapper typedef void wrapper type i
  • 是否可以从通用特征实现中排除某种类型?

    我正在尝试用毯子创建一个错误类型From实施任何Error 但是由于这种类型本身就是一个Error我遇到冲突 pub struct ApiError pub i64 pub String impl
  • 在cypress中捕获websocket请求

    我试图捕获测试期间发生的所有请求 我的应用程序使用 WebSocket 并且使用拦截命令我无法捕获 wss 请求 有什么办法可以做到这一点吗 我认为拦截命令不能直接捕获网络套接字 一种方法是观察 ws 通信的结果 如下所示使用 Cypres
  • 如何使用jq提取json值子字符串

    我有这个 json temperature 21 humidity 12 3 message Today ID 342 is running 我想使用jq来获取这个json temp 21 hum 12 3 id 342 正如你所看到的 我
  • 将 WPF 单选按钮设置为具有正确 IsEnabled 行为的切换按钮

    我需要将一些分组单选按钮设置为切换按钮 为此 我将以下样式应用于单选按钮 Style StaticResource x Type ToggleButton 这给了我想要的风格 但我注意到一个恼人的副作用 我需要能够在禁用控件时更改所选按钮
  • 使用android应用程序的http post方法发送json对象

    我正在尝试将 JSON 对象发送到我的 php web 服务 我已经提到了这个网址 http www josecgomez com 2010 04 30 android accessing restfull web services usi
  • 根据其他列设置列的值

    我有一个数据框 如下所示 ID Score New ID New Score 123 5 456 456 1 789 789 0 123 我想为 New ID 列提供相同的分数 只是顺序不同 期望的结果 ID Score New ID Ne
  • 颤动中的多个依赖下拉菜单

    我正在尝试在颤动上构建多个依赖的下拉菜单 第二个依赖于第一个 这是我实现的下拉列表的代码 Container child new DropdownButton
  • C# CreateSymbolicLink 不遵循共享访问

    我不确定这只是 C 问题还是 Windows 限制 我有一台运行我的程序的服务器 它在共享文件夹中创建符号链接 我可以通过此链接从具有正常磁盘路径和共享路径的服务器进行访问 如果我尝试与其他电脑访问同一共享 我将无法访问链接的文件 我确实可
  • Pandas如何按列按间隔分割数据框

    我有一个巨大的数据框 其中有一个名为的日期时间类型列dt 数据框排序基于dt已经 我想根据以下内容将数据帧拆分为多个数据帧dt 每个数据帧包含行1 hr range Split dt text 0 20160811 11 05 a 1 20