熊猫改变列的顺序

在我的项目中,我使用 Flask 我得到一个 JSON(通过 REST API),其中包含我应该转换为 Pandas Dataframe 的数据。JSON 看起来像:


{

    "entity_data":[

                  {"id": 1, "store": "a", "marker": "a"}

    ]

}

我得到 JSON 并提取数据:


params = request.json

entity_data = params.pop('entity_data')

然后我将数据转换为熊猫数据框:


entity_ids = pd.DataFrame(entity_data)

结果如下所示:


   id marker store

0   1      a     a

这不是列的原始顺序。我想像在字典中一样更改列的顺序。帮助?


蓝山帝景
浏览 168回答 3
3回答

慕妹3146593

只需添加列名称参数。entity_ids = pd.DataFrame(entity_data, columns=["id","store","marker"])

喵喔喔

假设您有权访问 JSON 发送方,您可以在 JSON 本身中发送订单。喜欢`{"order":['id','store','marker'],"entity_data":{"id": [1,2], "store": ["a","b"],"marker": ["a","b"]}}然后创建columns指定的DataFrame 。正如 Chiheb.K. 所说import pandas as pdparams = request.jsonentity_data = params.pop('entity_data')order = params.pop('order')entity_df=pd.DataFrame(data,columns=order)如果您不能在 JSON 中明确指定顺序。看到这个答案,指定object_pairs_hook在 JSONDecoder得到一个OrderedDict,然后创建DataFrame
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python