Python:遍历DataFrame中的所有列标题,并为每个列标题创建新字典,其中键:基于两列的值对
Posted
技术标签:
【中文标题】Python:遍历DataFrame中的所有列标题,并为每个列标题创建新字典,其中键:基于两列的值对【英文标题】:Python: Loop Through All Column Headers In DataFrame and Create New Dictionary For Each Column Header With Key:Value Pairs Based on Two Columns 【发布时间】:2020-10-20 01:56:53 【问题描述】:我目前有下面的示例数据集
我想做以下事情:
-
为每个包含数据字典的列标题(house 除外)创建一个变量
上面的数据字典将“房屋”编号作为键,将该列中的信息作为值
例如,如果我在 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]))
但上面的代码是错误的,因为它没有将每个字典保存到其对应的标题列变量中。
【问题讨论】:
【参考方案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 的示例。以上是关于Python:遍历DataFrame中的所有列标题,并为每个列标题创建新字典,其中键:基于两列的值对的主要内容,如果未能解决你的问题,请参考以下文章
更快地遍历一个 DataFrame 的行以将列添加到第二个 DataFrame