如何在数据框Pandas / Python中比较不同年份的月度值变化

时间:2019-01-04 14:46:48

标签: python pandas

我有一个数据框,其中列是

'Jan-2001' 'Feb-2001' ... 'Dec-2001'... 'Jan-2002' ... 'Dec-2002' ... 'Jan-2018' ... 'Dec-2018'.

  200        190.4          55.23         12.3            130.2        30                42 

  ...

这些列的值是浮点数。我需要查找不同年份中同一月份的值变化。例如,我需要检查2018年3月与前一年,2017年3月相比其他月份/年份中值的变化情况。我需要标记所有与上一年相比变化30%的值。例如,如果2018年4月的值与2017年4月的值相比变化了30%,则需要对其进行标记。我最大的问题是如何在数据框中按相同月份但不同年份搜索值。

我所做的是转置数据框,所以现在我用日期而不是行中的列(date现在是数据框索引),我为数据框分配了新的列“ month”和“ date”,但不确定如何解决这个问题,如果那是要走的路。我猜不能对聚合进行分组,因为如果以总和/均值为例,而我无法更改它们,那么我的值将会更改。

更新:

转置的数据帧:

Jan-1990    200     1.2    .... 45
Feb-2001    190.4   287.5  ...  2.1
 ... 

1 个答案:

答案 0 :(得分:0)

您可能想使用built-in python date format。 首先,您应该将字符串解析为该日期格式,最有可能使用strptime

然后,您可以定义1年的时间增量,并将其添加或减去到当前日期。 这将允许您在熊猫数据框中搜索相同的日期(熊猫本身支持对日期时间或日期时间段进行索引。 除了手动使用timedelta之外,您还可以使用期限为1年的pandas.date_range