使用重新采样时重命名列

时间:2017-01-22 15:07:21

标签: python pandas

我希望将年份转换为4个季度,例如2000q1, 2000q2, 2000q3, 2000q4

我正在使用以下代码

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 个答案:

答案 0 :(得分:1)

如果[1,2,3,4][x.quarter > 1]大于1,则

[1, 2, 3, 4][True]会转换为[1, 2, 3, 4][1](即x.quarter},如果[1, 2, 3, 4][False],则转换为[1, 2, 3, 4][0](即x.quarter) {1}}为1或更少。因此,对于大于1的季度,将返回2,对于第1季,将返回1.

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

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