代码之家  ›  专栏  ›  技术社区  ›  PineNuts0

Python:遍历DataFrame中的所有列标题,并为每个列标题创建新字典,其中包含基于两列的键值对

  •  0
  • PineNuts0  · 技术社区  · 4 年前

    我现在有下面的示例数据集

    enter image description here

    我想做以下事情:

    1. 为每个列标题(房子除外)创建一个变量,其中包含一个数据字典
    2. 上面的数据字典将“House”编号作为关键字,将该列中的信息作为值

    例如,如果我键入 Bedrooms 在Python中,结果输出将是:

    {'House1': 0,
     'House2': 1,
     'House3': 4,
     'House4': 3}
    

    或者如果我输入 condition :结果将是

    {'House1': new,
     'House2': old,
     'House3': old,
     'House4': new}
    

    我尝试了下面的代码:

    for col in df.columns: 
        col = dict(zip(foods_vector, df[col]))
    

    但是上面的代码是错误的,因为它没有将每个字典保存到其相应的头列变量中。

    1 回复  |  直到 4 年前
        1
  •  0
  •   Quang Hoang    4 年前

    此功能将执行以下操作:

    def get_dict(df, col, indexed='House'):
        return df.set_index(indexed)[col].to_dict()
    
    get_dict(df, 'condition')
    # {'h1': 'new', 'h2': 'old', 'h3': 'old', 'h4': 'new'}