我有一个嵌套字典,我想将其转换为数据框。当我使用
pd.DataFrame(my_dict)
它将列的顺序修改为字母顺序。我希望订单可以作为输入。
这里有一个几乎完全像这样的问题:
Pandas: create dataframe without auto ordering column names alphabetically
接受的答案有两种解决方案。对于我而言,第一个解决方案我认为不会奏效,或者至少是乏味且不易读,因为我的字典是嵌套的并且比他的字典长得多。
第二种解决方案涉及使用collections.OrderedDict
创建有序字典,然后将其转换为数据帧。据说这应该可以解决问题,但不适用于我。数据框仍按字母顺序排序。我认为这可能与我的字典嵌套有关。我尝试对所有嵌套字典使用collections.OrderedDict
,但仍然无法正常工作。很好,但是没有改变我的排序列问题。这是我的代码:
my_dict = collections.OrderedDict()
code code code
for fname in os.listdir(myfile)
labels = collections.OrderedDict({A : 1, C : 2, B : 3, etc})
my_dict.update({fname : labels})
显然,这是非常简化的,但它显示了总体思路。我制作了一个空的有序词典,然后对文件进行排序并收集带有值的标签,并将它们存储在有序词典中,然后使用fname和标签有序词典更新my_dict。
当我使用pd.DataFrame(my_dict).T
时输出的数据帧以字母顺序对列(例如A,C,B)进行排序。我希望它按输入顺序。
如果您知道我的数据框为何仍按字母顺序自动排序或以其他方式对此排序,请告诉我!