I have two pandas Dataframes. df1
has a simple index. df2
on the other hand has a multi index. How can I combine the two in such a way that every possible combination alongside index1
is generated? The result should look similar to df3
.
# %%
data1 = {"Value1": [1, 2]}
index1 = pd.Series(["A", "B"], name="Index1")
df1 = pd.DataFrame(data1, index=index1)
df1
# %%
data2 = {"Value2": [10, 20], "Value3": [100, 200]}
index_level1 = ("F", "G")
index_level2 = ("X", "Y")
multi_index1 = pd.MultiIndex.from_tuples(
[index_level1, index_level2], names=["Index2", "Index3"]
)
df2 = pd.DataFrame(data2, index=multi_index1)
df2
#%%
data3 = {
"Value1": [1, 2, 1, 2],
"Value2": [10, 20, 20, 10],
"Value3": [100, 200, 200, 100],
}
index_levels = [("A", "F", "G"), ("B", "X", "Y"), ("A", "X", "Y"), ("B", "F", "G")]
multi_index2 = pd.MultiIndex.from_tuples(
index_levels, names=["Index1", "Index2", "Index3"]
)
df3 = pd.DataFrame(data3, index=multi_index2)
df3