熊猫-通过所有独特组合组合两个系列

时间:2019-02-18 05:48:58

标签: python pandas

假设我有以下系列:

0    A
1    B
2    C
dtype: object

0    1
1    2
2    3
3    4
dtype: int64

如何合并它们以使用值的所有可能组合创建一个空数据框,如下所示:

   letter  number
0       A       1
1       A       2
2       A       3
3       A       4
4       B       1
5       B       2
6       B       3
7       B       4
8       C       1
9       C       2
10      C       3
11      C       4

2 个答案:

答案 0 :(得分:5)

假设2个系列分别为ss1,请使用itertools.product()给出输入可迭代项的笛卡尔积

import itertools
df = pd.DataFrame(list(itertools.product(s,s1)),columns=['letter','number'])
print(df)

    letter  number
0       A       1
1       A       2
2       A       3
3       A       4
4       B       1
5       B       2
6       B       3
7       B       4
8       C       1
9       C       2
10      C       3
11      C       4

答案 1 :(得分:0)

如果您有2个Series s1s2。 您可以这样做:

pd.DataFrame(index=s1,columns=s2).unstack().reset_index()[["s1","s2"]]

它将为您提供以下信息

   s1  s2
0   A   1
1   B   1
2   C   1
3   A   2
4   B   2
5   C   2
6   A   3
7   B   3
8   C   3
9   A   4
10  B   4
11  C   4