来自给定类别的值的所有可能组合的数据帧

y2p*_*y2p 4 python dataframe pandas

我有

{"A":[0,1], "B":[4,5], "C":[0,1], "D":[0,1]}
Run Code Online (Sandbox Code Playgroud)

我想要的是什么

A   B   C   D
0   4   0   0
0   4   0   1
0   4   1   0
0   4   1   1
1   4   0   1
Run Code Online (Sandbox Code Playgroud)

...等等.基本上每个类别的所有值组合.实现这一目标的最佳方法是什么?

Bre*_*arn 9

如果x是你的dict:

>>> 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
Run Code Online (Sandbox Code Playgroud)

如果您希望按特定顺序排列列,则需要在之后切换它们(例如,df[["A", "B", "C", "D"]].