如何将pandas中的每月数据转换为季度数据

2024-02-11

我有每月的数据。我想将其转换为 3 个月的“周期”,其中 q1 从 1 月开始。因此,在下面的示例中,前 3 个月的聚合将转换为第 2 季度的开始(所需格式:1996q2)。将 3 个月度值混合在一起得到的数据值是 3 列的平均值。从概念上讲,并不复杂。有谁知道如何一举完成?潜在地,我可以通过循环做很多艰苦的工作,然后硬编码出来,但我对 pandas 很陌生,正在寻找比暴力更聪明的东西。



1996-04   1996-05 1996-06  1996-07 .....
25          19       37      40
  

所以我正在寻找:



1996q2  1996q3   1996q4  1997q1  1997q2 .....
 avg      avg      avg     ...     ...
  

您可以使用pd.PeriodIndex(..., freq='Q') http://pandas.pydata.org/pandas-docs/stable/timeseries.html#periodindex-and-period-range和这个结合groupby(..., 轴=1) http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html:

In [63]: df
Out[63]:
   1996-04  1996-05  2000-07  2000-08  2010-10  2010-11  2010-12
0        1        2        3        4        1        1        1
1       25       19       37       40        1        2        3
2       10       20       30       40        4        4        5

In [64]: df.groupby(pd.PeriodIndex(df.columns, freq='Q'), axis=1).mean()
Out[64]:
   1996Q2  2000Q3    2010Q4
0     1.5     3.5  1.000000
1    22.0    38.5  2.000000
2    15.0    35.0  4.333333

UPDATE:将结果 DF 中的列作为字符串而不是period dtype:

In [66]: res = (df.groupby(pd.PeriodIndex(df.columns, freq='Q'), axis=1)
                  .mean()
                  .rename(columns=lambda c: str(c).lower()))

In [67]: res
Out[67]:
   1996q2  2000q3    2010q4
0     1.5     3.5  1.000000
1    22.0    38.5  2.000000
2    15.0    35.0  4.333333

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

如何将pandas中的每月数据转换为季度数据 的相关文章

  • 在 HSV 颜色空间内定义组织学图像掩模的颜色范围(Python、OpenCV、图像分析):

    为了根据颜色将组织学切片分成多个层 我修改了 OpenCV 社区提供的一些广泛分布的代码 1 我们的染色程序用不同的颜色标记组织横截面的不同细胞类型 B 细胞为红色 巨噬细胞为棕色 背景细胞核为蓝色 I m interested in se
  • pandas 系列值之间的过滤

    If s is a pandas Series http pandas pydata org pandas docs stable dsintro html series 我知道我可以这样做 b s lt 4 or b s gt 0 但我做
  • 合并一个对(元组)列表?

    从链接对的列表中 我想将这些对组合成公共 ID 组 这样我就可以将 group ids 写回数据库 例如 UPDATE table SET group n WHERE id IN Example 1 2 3 4 1 5 6 3 7 8 be
  • 如何检查Docker中是否安装了python包?

    我使用Dockerfile成功构建了一个容器 但是 我的代码在容器中不起作用 如果我手动安装所有软件包 它确实有效 我假设我搞砸了一些导致 docker 没有正确安装软件包的事情 所以 我想检查Docker容器中是否安装了python包 最
  • Pandas系列矢量化文本处理

    我想使用矢量化操作改进我的 Pandas 代码 假设我有一个简单的 DataFrame 其中有一个文本列 其中可能包含 url Column1 0 hello http www google com 1 bye www mail com w
  • python下安装xgboost 32位msys失败

    尝试安装 xgboost 失败 Windows 和企业版版本为 Anaconda 2 1 0 64 位 我该如何继续 我一直在使用 R 似乎从 RStudio 在 R 中安装新包相当容易 但在间谍程序中则不然 因为我需要进入命令窗口来执行此
  • 带剖面的 3D 曲面图

    基本上 我有一个由一组时间序列组成的曲面图 我想在特定高度添加剖面图 以更好地了解一年中值高于所选阈值的时期 由此 其中显示平面但不是剖面 To This 有什么建议吗 使用 alpha 和相机仰角并没有解决问题 平面似乎仍然在人物的前面
  • 使用 Python 将 Json 转换为换行 Json 标准

    我有一个获取嵌套对象并删除所有嵌套的代码 使对象平坦 def flatten json y param y Unflated Json return Flated Json out def flatten x name if type x
  • 使用字符串迭代 url - python

    我现在完全被我的代码困住了 首先 我尝试从 volkskrant 的存档页面检索所有网址 这是我被打击的第一步 某一特定日期的 url 如下所示 http www volkskrant nl archief detail 01012016
  • Python 请求包含有值的参数和没有值的参数

    我正在为 API 编写一个 Python 包装器 该 API 支持具有值的查询参数 例如param1如下 和查询参数do not有价值观 例如param2如下 即 https example com service param1 value
  • Pythonwinsound,ASYNC 标志不起作用?

    我正在使用 python 3 5 我试图在继续执行脚本的同时播放声音 根据https docs python org 3 5 library winsound html https docs python org 3 5 library w
  • 如何在 Spark Dataframe 中显示完整的列内容?

    我正在使用 Spark csv 将数据加载到 DataFrame 中 我想做一个简单的查询并显示内容 val df sqlContext read format com databricks spark csv option header
  • 从 SQL 数据库导入表并按日期过滤行时,将 Pandas 列解析为日期时间

    我有一个DataFrame列名为date 我们如何将 日期 列转换 解析为DateTime object 我使用 Postgresql 数据库加载日期列sql read frame 的一个例子date列是2013 04 04 我想做的是选择
  • 在 pandas DataFrame 中使用比较列表的问题

    我在 pandas 中有一个 DataFrame 其列类型之一是 int 上的列表 如下所示 df pandas DataFrame 1 2 3 4 5 6 7 8 9 10 columns a b c d gt gt gt df a b
  • 使用 pandas 中的正则表达式在另一列中查找一列中的值

    我有一个包含两列字符串的 pandas 数据框 我想识别第一列中字符串的所有行 s1 出现在第二列 s2 所以如果我的专栏是 abc abcd ef gh z1y xxyyzz 我想保留第一行 但不想保留第二行 我能想到的唯一方法是 迭代数
  • 在 envoy 中使用 rm *(通配符):没有这样的文件或目录

    我正在使用 Python 和 Envoy 我需要删除目录中的所有文件 除了一些文件外 该目录是空的 在终端中 这将是 rm tmp my silly directory 常识表明 在特使中 这转化为 r envoy run rm tmp m
  • 在绘图中的线间隙之间添加注释

    I have a graph like this 而不是在上面的日子symbol 我想知道是否有办法可以在行之间添加此注释 从一个点到另一个点 如果以防万一 这可能是重复的 我深表歉意 This is my expected output
  • Python 3d 金字塔

    我是 3D 绘图新手 我只想用 5 个点建造一个金字塔并通过它切出一个平面 我的问题是我不知道如何填充两侧 points np array 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 fig plt figure ax fi
  • python nltk从句子中提取关键字

    我们要做的第一件事 就是杀掉所有律师 威廉 莎士比亚 鉴于上面的引用 我想退出 kill and lawyers 作为两个突出的关键词来描述句子的整体含义 我提取了以下名词 动词 POS 标签 First NNP thing NN do V
  • 网站可以检测您何时将 Selenium 与 chromedriver 结合使用吗?

    我一直在使用 Chromedriver 测试 Selenium 我注意到有些页面可以检测到您正在使用 Selenium 即使根本没有自动化 即使我只是通过 Selenium 使用 Chrome 手动浏览 Xephyr https en wi

随机推荐

  • 在服务中运行 Android TTS

    我试图让 Android 的 TTS 在服务中运行 但我不知道为什么它不起作用 它可以编译 不会崩溃 但它就是不起作用 不过 Toast 通知确实有效 package alarm test import android app Servic
  • 我可以使用 UML 来建模网站导航吗

    我可以使用 UML 对网站导航进行建模吗 如果是的话 有人给我一些书籍 链接以供参考 网站的 UML 之类的 如果不是的话 有哪些工具可以实现这一点 基本上我是一名程序员 当我设计以前的网站时 我只是在纸上勾勒出不同的页面设计想法 然后选择
  • 运行单元测试时禁用温斯顿日志记录?

    在执行节点模块的单元测试时是否可以有选择地禁用 Winston 日志记录 理想情况下 我希望在应用程序运行时进行日志记录以提供信息和调试目的 但在运行测试时不要使演示单元测试结果混乱 我对 winston 的使用是在我的模块内部的 如下所示
  • 无法将类型 void 隐式转换为对象。 .NET MVC 部分视图结果

    我有以下控制器操作 ChildActionOnly public virtual PartialViewResult ListActions int id var actions meetingActionRepository GetAll
  • 使用 RxJava 实现存储库模式

    我正在尝试找出一种更好的方法来实现 Android 中 RxJava 中的存储库模式之类的功能 这是我到目前为止所拥有的 从here https gist github com pieces029 5e92f9003fa1a4ebc59b
  • 如何去除两个顶点之间的边?

    我想删除两个顶点之间的边 所以我在 javatinkerpop3 中的代码如下 private void removeEdgeOfTwoVertices Vertex fromV Vertex toV String edgeLabel Gr
  • 使用 IDisposable 资源进行屈服

    是否有通过可支配资源产生收益的正确方法 返回的对象是 IDisposable 但它迭代的元素是 这是一个例子 public static IEnumerable
  • JPA - 禁用 persistence.xml 的验证

    我正在迈出使用 JPA Hibernate 的第一步 总体思路是连接到遗留数据库来执行复杂的查询 我认为 hibernate 是完成这项任务的绝佳伴侣 但是 首先 我创建了一个 bean persistence xml 和 hibernat
  • 更改文本文件编码

    如何通过代码更改文本文件编码 我正在使用此代码实际创建文件本身 但如何更改编码 更改为 UTF 8 w o BOM string path E Test Example txt if File Exists path File Create
  • Visual Studio XML 文件编辑器小写

    我正在 Visual Studio 中编辑 cshtml 带有 cshtml 文件扩展名 我自动设置格式或粘贴一些 xml 这会触发自动格式 并且 Visual Studio 会小写所有 xml 属性 因此 theAttribute gt
  • Windows 终端中的 Git Bash 在单独的窗口中打开

    我想将 git bash 添加到 Windows 终端 但是 当我在终端中添加新的 git bash 选项卡时 git bash 将在另一个窗口中打开 这是我的配置 guid acrylicOpacity 0 75 closeOnExit
  • "Hello" |> printfn 在 F# 中生成错误

    https tryfsharp fsbolero io https tryfsharp fsbolero io printfn Hello 但是 使用管道运算符可以按预期工作 没有错误 Hello gt printfn 类型 string
  • Xcode 8 AppStore 上传(错误 434)

    当我尝试验证App Store构建使用Xcode 8我收到以下错误 ITunesSoftwareServiceAuthenticationErrorDomain 434 这是什么意思 我多次尝试收到相同的错误 我做了一些更改 对配置文件等
  • 使用Java读取MySQL二进制(16) UUID

    这应该是一个非常简单的问题 我只是在这里遗漏了一些基本的东西 我正在经历 那些日子之一 无法使用 Hibernate 或其他 ORM 使用 Java 准备语句 MySQL 的东西 CREATE TABLE article articleID
  • 使用 ggplot 在背景图像上绘制数据

    我正在尝试在背景图像上绘制一些数据 问题是两个层最终都使用相同的比例 不幸的是 这是有问题的 一个例子 我想绘制一些数据image https dl dropboxusercontent com u 39251 image jpg 正确的
  • java.lang.IllegalStateException:不在主线程上

    当服务器端制造商的表中没有可用数据并且数据对象为空时 我试图从 FragmentActivity 地图中的 Goolge 地图中删除标记 但我收到以下错误 我该如何修复它 Error 07 12 20 53 05 697 E Android
  • 如何获取所有屏幕的 DPI 比例?

    我需要为连接到计算机的每个屏幕 甚至那些没有打开 WPF 窗口的屏幕 获取从 控制面板 gt 显示 设置的 DPI 比例 我见过很多获得 DPI 的方法 例如 http dzimchuk net post Best way to get D
  • 如何将eclipse库项目从github导入到android studio项目?

    我想用全息圆形进度条 https github com passsy android HoloCircularProgressBar作为我的 android studio 项目中的一个库项目 我尝试通过复制到项目中预先创建的 库 文件夹中
  • 如何在不使用 javac 编译源的情况下运行注释处理器(Java 8 无法使用 Apt)

    如何在不使用 javac 编译源的情况下运行注释处理器 Java 8 无法使用 Apt javac 是否有任何参数可以只运行注释处理而不编译所有文件 我想通过 javac 做什么 只需找到带注释的元素并使用定义的注释处理器处理它们 proc
  • 如何将pandas中的每月数据转换为季度数据

    我有每月的数据 我想将其转换为 3 个月的 周期 其中 q1 从 1 月开始 因此 在下面的示例中 前 3 个月的聚合将转换为第 2 季度的开始 所需格式 1996q2 将 3 个月度值混合在一起得到的数据值是 3 列的平均值 从概念上讲