DataFrame中两列的所有可能组合,同时保持其余各列相同

时间:2019-02-12 22:28:39

标签: python pandas dataframe combinations

我有一个熊猫数据框,例如:

  Column_1   Column_2   Column_3   Column_4
0.   a          d          d1         d2
1.   b          e          e1         e2

,我需要对Column_1和Column_2进行所有可能的组合,以使Column_3和Column_4的值与包含Column_2的行保持相同。这应该是输出:

  Column_1   Column_2   Column_3   Column_4
0.   a          d          d1         d2
1.   a          e          e1         e2
2.   b          d          d1         d2
3.   b          e          e1         e2

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找具有来自产品的多个索引的reindex

col=df.columns
df.set_index(['Column_1','Column_2'],inplace=True)
idx=pd.MultiIndex.from_product([df.index.get_level_values(0),df.index.get_level_values(1)])
df=df.reindex(idx,method = 'ffill').reset_index()
df.columns=col
df

  Column_1 Column_2 Column_3 Column_4
0        a        d       d1       d2
1        a        e       d1       d2
2        b        d       d1       d2
3        b        e       e1       e2