为什么Pandas DataFrame Resample会更改列顺序

时间:2015-05-05 23:21:25

标签: python pandas

我有一些Daily OHLC数据,我正在使用下面的函数重新采样到Weekly,每日DataFrame列是[u'Open',u'High',u'Low',u'Close',u'Volume' ]

def loadWeekly(symbol):
    df = loadDaily(symbol)

    ohlc_dict = {
    'Open':'first',
    'High':'max',
    'Low':'min',
    'Close':'last',
    'Volume':'sum'
    }

    return df.resample('W-Fri', how=ohlc_dict)

当我调用loadWeekly函数时,返回的DataFrame列是[u'High',u'Close',u'Volume',u'Open',u'Low']

知道造成这种情况的原因以及如何保持原始列顺序。

1 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为python词典是无序的。您可以使用OrderedDict,但最简单的方法就是重新排序结果,就像这样。

order = df.columns
return df.resample('W-Fri', how=ohlc_dict)[order]