将标头作为键,列作为具有值的数组,将DataFrame转换为字典

时间:2019-06-25 21:21:14

标签: python pandas dataframe dictionary

我有一个数据框,如下所示:

A B C 
1 6 1 
2 5 7 
3 4 9
4 2 2

我想要这样的字典:

{A: [1,2,3,4], B:[6,5,4,2], C:[1,7,9,2]}

我曾尝试使用普通的df.to_dict(),但没有找到它。如果我使用转置的数据帧,那么df.T.to_dict()会很近,但是我有类似的东西:

{0: {A: 1, B: 6, C:1} , ... , 4:{A: 4, B: 2, C: 2 } }

堆栈溢出中的问题仅限于每个键具有一个值的字典,而不是数组。

使用to_dict()并避免任何for循环对我来说非常有价值,因为我使用的数据库很大,并且我希望计算复杂度尽可能低。

1 个答案:

答案 0 :(得分:2)

orient='list'

df.to_dict(orient='list')

或者:该方法实际上只是检查第一个字符

df.to_dict('l')

如果要保留numpy数组

{k: v.to_numpy() for k, v in df.items()}