2017-01-22 54 views
0

我想将年份转换为4个季度,例如-2000q1, 2000q2, 2000q3, 2000q4使用resample重命名列

我使用下面的代码

mdf = mdf.resample('Q',axis=1).mean().rename(
    columns=lambda x: '{:}q{:}'.format(x.year, [1,2,3,4][x.quarter >1])) 

但我得到的输出是 2000q1, 2000q2, 2000q2, 2000q2

请建议我去哪里错了。

回答

1

[1,2,3,4][x.quarter > 1]转化为[1, 2, 3, 4][True]如果(即[1, 2, 3, 4][1]x.quarter大于1,或[1, 2, 3, 4][False](即[1, 2, 3, 4][0])如果x.quarter为1或更小。因此,这将返回2季度大于1,而1季度1.

'{}q{}'.format(x.year, x.quarter) 

应该没有任何索引的正常工作。请参阅this answer中的重命名部分。

+0

其工作。谢谢 – Dumb