【发布时间】:2020-01-12 14:59:02
【问题描述】:
我正在尝试基于重复的 API 调用构建 Pandas DataFrame。我已将 JSON 响应对象(其中包含比我需要的更多的数据)过滤到几个字典中。当我合并字典(使用python new_dict = {**old_dict1, **old_dict2})时,键的顺序被保留。但是,当我创建一个空白数据框并使用 append 参数时,即使 sort 参数为 false,生成的数据框也会按字母顺序对列名(以前的 dict 键)进行排序。我想保留原来的顺序
这是我希望创建的数据框的示例行:
detection_dict={'blacklist_detections': 0,'detection_rate':'0%'}
geo_dict={'continent': 'North America','country':'United States','region':'Alabama'}
anon_dict = {'is_proxy': False,'is_webproxy': False,'is_vpn': False,'is_hosting': False,'is_tor': False}
combo_dict = {**detection_dict, **geo_dict, **anon_dict}
调用 combo_dict 返回:
{'blacklist_detections': 0,
'detection_rate': '0%',
'continent': 'North America',
'country': 'United States',
'region': 'Alabama',
'is_proxy': False,
'is_webproxy': False,
'is_vpn': False,
'is_hosting': False,
'is_tor': False}
我希望这些键保留的顺序是什么。但是,调用
df = pd.DataFrame()
df.append(combo_dict, ignore_index = True, sort = False)
返回一个数据框,其中所有键按字母顺序排序(blacklist_detections、continents、country、detection_rate 等)
我不确定是我将每一行添加到数据框的方式还是我合并字典的方式是造成这种行为的原因,但我希望它保持未排序。我不明白为什么 sort=False 没有为我做任何事情。任何帮助将不胜感激!
【问题讨论】:
标签: python python-3.x pandas dataframe jupyter-notebook