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

时间:2014-05-07 20:02:09

标签: python pandas dataframe

我有

{"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

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

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"]]