将熊猫多列转换为字典

时间:2019-03-07 20:58:40

标签: python pandas python-2.7 dictionary

我有一个100列的pandas数据框,我想为每一列创建一个字典,其中第一列为键,并且我一直在手动进行。

让我解释一个示例数据框

ID a b c 123 jon foo bar 789 pan bam fan 278 car bike boat

让我们考虑上表的列名 ID,a,b,c 。现在,我试图为ID为字典关键字的每一列创建字典。

类似下面的

dicta = {ID: a} dictb = {ID: b} dictc = {ID: c}

我目前正在做的是:

dicta_ = dict(zip(df['ID'], df['a'])) dicta = {k:v for k,v in dicta_.items()}

dictb_ = dict(zip(df['ID'], df['b'])) dictb = {k:v for k,v in dictb_.items()}

dictc_ = dict(zip(df['ID'], df['c'])) dictc = {k:v for k,v in dictc_.items()}

并且上面的代码正在获取我想要的结果,但是我必须对所有100列手动进行操作,但这并不是最有效的方法。

如果能通过编写循环或函数获得一些帮助或建议来自动执行该过程,我将不胜感激。预先感谢!

1 个答案:

答案 0 :(得分:1)

set_index,然后使用df.to_dict()

d = df.set_index('ID').to_dict()

然后使用值调用该列:

d['a']

# {123: 'jon', 278: 'car', 789: 'pan'}

d['b']

# {123: 'foo', 278: 'bike', 789: 'bam'}