![](/img/trans.png)
[英]Python transfering names in Pandas dataframe column into a dictionary alphabetically
[英]Pandas: create dataframe without auto ordering column names alphabetically
我正在创建一个初始的pandas数据帧来存储从其他代码生成的结果:例如
result = pd.DataFrame({'date': datelist, 'total': [0]*len(datelist),
'TT': [0]*len(datelist)})
使用datelist
列表预定义列表。 然后其他代码将为每个date
输出一些total
和TT
,我将存储在result
数据框中。
所以我想的第一列是date
,第二个total
第三TT
。 但是,pandas会自动按字母顺序将其重新排序为TT
, date
,创建时的total
。 虽然我之后可以手动重新排序,但我想知道是否有更简单的方法可以一步到位。
我想我也可以
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)
result = pd.DataFrame({'date': [23,24], 'total': 0,
'TT': 0},columns=['date','total','TT'])
将pandas> = 0.23与Python> = 3.6结合使用。
result = pd.DataFrame({'date': datelist, 'total': [0]*len(datelist), 'TT': [0]*len(datelist)})
在将pandas v0.23.0与Python3.6结合使用时,在从dict创建DataFrame(或Series)时保留dict的插入顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.