我有
{"A":[0,1], "B":[4,5], "C":[0,1], "D":[0,1]}
我想要的是什么
A B C D
0 4 0 0
0 4 0 1
0 4 1 0
0 4 1 1
1 4 0 1
......等等。基本上每个类别的所有值组合。 实现这一目标的最佳方法是什么?
答案 0 :(得分:8)
如果x
是您的词典:
>>> pandas.DataFrame(list(itertools.product(*x.values())), columns=x.keys())
A C B D
0 0 0 4 0
1 0 0 4 1
2 0 0 5 0
3 0 0 5 1
4 0 1 4 0
5 0 1 4 1
6 0 1 5 0
7 0 1 5 1
8 1 0 4 0
9 1 0 4 1
10 1 0 5 0
11 1 0 5 1
12 1 1 4 0
13 1 1 4 1
14 1 1 5 0
15 1 1 5 1
如果您希望以特定顺序排列这些列,则需要在之后切换它们(例如df[["A", "B", "C", "D"]]
。