我进行了搜索,但没有看到与此特定问题相关的任何结果。我有一个Python dict,并且正在将我的dict转换为pandas数据帧:
pandas.DataFrame(data_dict)
它有效,只有一个问题 - 我的pandas数据框的列与我的Python dict的顺序不同。我不确定大熊猫是如何重新排序的。我如何保留订购?
答案 0 :(得分:1)
Python字典是一种无序结构,打印它(或在其键上循环)时获得的键顺序是任意的。
在这种情况下,您需要使用
明确指定DataFrame中列的顺序pandas.DataFrame(data=data_dict, columns=columns_order)
其中column_order
是订单中列名的列表。
答案 1 :(得分:1)
Python词典(3.6之前版本)是无序的,因此不能依赖列顺序。您可以在之后简单地设置列顺序。
In [1]:
df = pd.DataFrame({'a':np.random.rand(5),'b':np.random.randn(5)})
df
Out[1]:
a b
0 0.512103 -0.102990
1 0.762545 -0.037441
2 0.034237 1.343115
3 0.667295 -0.814033
4 0.372182 0.810172
In [2]:
df = df[['b','a']]
df
Out[2]:
b a
0 -0.102990 0.512103
1 -0.037441 0.762545
2 1.343115 0.034237
3 -0.814033 0.667295
4 0.810172 0.372182