我想将数据帧转换为字典,其中键是数据帧的行索引和列名,每个键的值是每个行索引和列名的位置。
假设这是我的数据框。
1 2 3
0 1 2 3
1 4 5 6
2 7 8 9
我希望我的字典看起来像这样:
((0, 1), 1)
((0, 2), 2)
((0, 3), 3)
((1, 1), 4)
我该如何实现?
答案 0 :(得分:2)
将MultiIndex Series
与stack
一起使用to_dict
:
d = df.stack().to_dict()
print (d)
{(0, 1): 1, (0, 2): 2, (0, 3): 3,
(1, 1): 4, (1, 2): 5, (1, 3): 6,
(2, 1): 7, (2, 2): 8, (2, 3): 9}
但是如果要tuple
:
s = df.stack()
L = list(zip(s.index.tolist(), s))
print (L)
[((0, 1), 1), ((0, 2), 2), ((0, 3), 3),
((1, 1), 4), ((1, 2), 5), ((1, 3), 6),
((2, 1), 7), ((2, 2), 8), ((2, 3), 9)]