【问题标题】:python: Ignoring first key in a dict for each row in a pandas dataframepython:忽略熊猫数据框中每一行的字典中的第一个键
【发布时间】:2021-08-05 17:45:39
【问题描述】:

我正在使用包含 dict 作为字段的 pandas 数据框。第一级键始终是唯一命名的,我想遍历它以提取嵌套值并将其附加到列表中。这是dicts的样子:

{
    'alpha': {
        'date': 'April 18th, 2020',
        'name': 'Steve'
        'countries': [
            'Grenada',
            'Liechtenstein',
        ],
    }
    'sigma': {
        'date': 'March 13th, 2020',
        'name': 'Storm'
        'countries': [
            'Mayotte',
            'Palau',
            'Bhutan'
        ],
    }
}

我想做的是抓取“国家”键中的任何内容并将其附加到列表中(并将其添加到数据框中的新列中)。对于这个特定的字典,我想收集的列表看起来像 ['Grenada','Liechtenstein','Mayotte','Palau','Bhutan']

【问题讨论】:

  • 将您的字典存储在名为 data 的变量中,然后 result=pd.DataFrame(data).loc['countries'].sum()

标签: python json pandas dataframe dictionary


【解决方案1】:

您可以遍历字典,以获得所需的输出: 示例:

dict_list= {
    'alpha': {
        'date': 'April 18th, 2020',
        'name': 'Steve',
        'countries': [
            'Grenada',
            'Liechtenstein',
        ],
    },
    'sigma': {
        'date': 'March 13th, 2020',
        'name': 'Storm',
        'countries': [
            'Mayotte',
            'Palau',
            'Bhutan'
        ],
    }
}
my_list = []
for i,v in enumerate(dict_list):
    my_list.extend(dict_list[v]['countries'])
print(my_list)#['Grenada', 'Liechtenstein', 'Mayotte', 'Palau', 'Bhutan']

【讨论】:

    【解决方案2】:

    你可以尝试做类似的事情

    my_list = []
    for k, v in my_dict.items():
        my_list += v['countries']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-02
      • 2021-11-10
      • 2021-11-11
      • 2019-02-22
      • 2022-09-29
      相关资源
      最近更新 更多