将 DataFrame 转换为字典,其中标题为键,列为带有值的数组

Ant*_*uiz 1 python dictionary dataframe pandas

我有一个数据框如下:

A B C 
1 6 1 
2 5 7 
3 4 9
4 2 2
Run Code Online (Sandbox Code Playgroud)

我想要一本这样的字典:

{A: [1,2,3,4], B:[6,5,4,2], C:[1,7,9,2]}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用普通的df.to_dict(),但效果还差得远。如果我使用转置数据框,因此df.T.to_dict()它会接近,但我有这样的东西:

{0: {A: 1, B: 6, C:1} , ... , 4:{A: 4, B: 2, C: 2 } }
Run Code Online (Sandbox Code Playgroud)

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

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

piR*_*red 5

orient='list'

df.to_dict(orient='list')
Run Code Online (Sandbox Code Playgroud)

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

df.to_dict('l')
Run Code Online (Sandbox Code Playgroud)

如果你想保留 numpy 数组

{k: v.to_numpy() for k, v in df.items()}
Run Code Online (Sandbox Code Playgroud)