我正在创建一个初始的熊猫数据帧来存储从其他代码生成的结果:例如

result = pd.DataFrame({'date': datelist, 'total': [0]*len(datelist),
                       'TT': [0]*len(datelist)})

带有一个预先定义的列表。然后其他代码将为每个datelist输出一些数字,我将存储在total数据框中。
所以我希望第一列是TT,第二列是date,第三列是result。但是,熊猫会在创建时自动按字母顺序重新排序为datetotalTT。虽然之后我可以手动重新排序,但我想知道是否有一种更简单的方法可以在一个步骤中实现这一点。
我想我也可以
result = pd.DataFrame(np.transpose([datelist, [0]*l, [0]*l]),
                      columns = ['date', 'total', 'TT'])

但不知怎么的,它看起来也很乏味。还有什么建议吗?

最佳答案

可以将列的(顺序正确的)列表作为参数传递给构造函数或使用ordereddict:

# option 1:
result = pd.DataFrame({'date': datelist, 'total': [0]*len(datelist),
                   'TT': [0]*len(datelist)}, columns=['date', 'total', 'TT'])

# option 2:
od = collections.OrderedDict()
od['date'] = datelist
od['total'] = [0]*len(datelist)
od['TT'] = [0]*len(datelist)
result = pd.DataFrame(od)

08-19 07:36