【问题标题】:Python: Loop Through All Column Headers In DataFrame and Create New Dictionary For Each Column Header With Key:Value Pairs Based on Two ColumnsPython:遍历DataFrame中的所有列标题,并为每个列标题创建新字典,其中键:基于两列的值对
【发布时间】:2020-10-20 01:56:53
【问题描述】:

我目前有下面的示例数据集

我想做以下事情:

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

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

{'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]))

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

【问题讨论】:

    标签: pandas loops dictionary header


    【解决方案1】:

    这个函数会做:

    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'}
    

    【讨论】:

    • 这不是我想要的;我需要能够仅执行列标题/变量名(即在 python 中运行“条件”并让它吐出所需的结果)。原因是我需要稍后在我的代码中将变量名本身用于其他事情
    • 动态变量名,虽然在 Python 中可能,但强烈建议不要使用,因为它可以覆盖系统变量(想想我是否有一个名为 list 的列)。另外,您要问的是XY problems 的示例。
    猜你喜欢
    • 2018-12-26
    • 2021-02-21
    • 2023-04-01
    • 2017-03-16
    • 2014-01-31
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多