当前位置: 首页 > 面试题库 >

如何将大熊猫的每月数据转换为季度数据

邹丰羽
2023-03-14
问题内容

我有月度数据。我想将其转换为1月份从1月份开始的3个月的“期间”。因此,在下面的示例中,前三个月的汇总将转换为q2的开始(所需格式:1996q2)。而将三个月度值汇总在一起而得出的数据值是三列的平均值。从概念上讲,并不复杂。有谁知道如何一口气做到这一点?潜在地,我可以通过循环来做很多艰苦的工作,并从中进行硬编码,但是我是熊猫的新手,正在寻找比暴力更聪明的东西。

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

所以我在寻找:

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

问题答案:

您可以将pd.PeriodIndex(…,freq =’Q’)与groupby(…,axis =
1)
结合使用 :

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中的列作为dtype的字符串插入period

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')


 类似资料:
  • 问题内容: 我对熊猫有些陌生。我有一个熊猫数据框,它是1行乘23列。 我想将其转换为系列吗?我想知道最pythonic的方法是什么? 我试过了,但是抱怨。它不够聪明,无法意识到它仍然是数学上的“向量”。 谢谢! 问题答案: 它不够聪明,无法意识到它仍然是数学上的“向量”。 可以说它足够聪明,可以识别尺寸差异。:-) 我认为您可以做的最简单的事情是使用位置选择该行,这将为您提供一个Series,其列

  • 我想读取ArcGIS形状文件的文件,并将其转储到数据帧中。我目前正在使用dbf包。 显然,我已经能够将文件作为一个表加载,但还不能理解如何解析它并将其转换为一个数据帧。怎么做? 这就是我所处的困境: Python将此语句作为输出返回,坦率地说,我不知道该如何处理: 编辑 我的原始示例:

  • 我对熊猫有些陌生。我有一个熊猫数据框,是一行23列。 我想把它转换成一个系列?我想知道做这件事最像蟒蛇的方式是什么? 我试过pd。系列(我的结果),但它抱怨。它还没有聪明到意识到它仍然是数学术语中的“向量”。 谢谢!

  • 如何将pandas数据帧(21 x 31)转换为numpy数组? 例如: 数组_1(n_1,n_2,n_3,…,n31) 数组_2(n_1,n_2,n_3,…,n31) 数组21(n_1,n_2,n_3,…,n31) 我尝试了以下代码段: .. 并得到如下结果: 问题是第二个方括号太多了。我该如何解决这个问题?

  • 问题内容: 我有以下熊猫数据框: 我想将日期时间索引转换为数据框的列。我尝试过,但结果没有改变。任何想法? 问题答案: 需要分配输出或参数:

  • 我在Pandas中读取了一个SQL查询,虽然值是字符串、日期和整数,但它们是作为dtype“object”输入的。我能够将日期“对象”转换为datetime数据类型,但在尝试转换字符串和整数时出错。 以下是一个例子: 将转换为日期时间有效: 但我在尝试将转换为整数时出错: 注意:我得到一个类似的错误,当我尝试 当试图转换为字符串时,似乎什么也没有发生。