给定一个 Django 查询集,如下所示:
qs = A.objects.all().values_list('A', 'B', 'C', 'D', 'E', 'F')
Run Code Online (Sandbox Code Playgroud)
我可以轻松地将我的 qs 转换为 Pandas 数据帧:
df = pd.DataFrame.from_records(qs.values('A', 'B', 'C', 'D', 'E', 'F'))
Run Code Online (Sandbox Code Playgroud)
但是,不会维护列顺序。转换后,我需要立即指定新的列顺序,但我不清楚原因:
df = df.columns['B', 'F', 'C', 'E', 'D', 'A']
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我可以做些什么不同的事情来避免显式设置数据框列?