如何按元素乘以数据帧并创建多索引 -- Python

how to multiply dataframes elementwise and create multi-index -- Python

我有两个 DataFrame datesupply:

data =
    Nov_15   DEc_15   Jan_16
0    2        4        6
1    3        5        7

supply =
    c1    c2 
0   1     2     
1   3     4  
2   5     6 

我想按元素将 supplyc1 列乘以 date 的行 0,并将 c2 列乘以行 1 .结果应如下所示:

    Nov_15    Nov_15   Dec_15   Dec_15   Jan_16   Jan_16
    c1        c2       c1       c2       c1       c2
0   2         6        4        10       6        14
1   6         12       12       20       18       28
2   10        18       20       30       30       42

我可以为此编写一个函数吗?

您可以重新索引这两个数据帧,使它们 index/column 匹配,然后将它们相乘:

df1 = pandas.DataFrame([[i*j for i in range(1, 3)] for j in range(2, 5)], index=list('abc'), columns=list('AB'))
print df1
df2 = pandas.DataFrame([[i*10**j for i in range(1, 4)] for j in range(1, 3)], columns=list('abc'))
print df2

df11 = df1.reindex(columns=pandas.MultiIndex.from_product([df1.columns, df2.index]), level=0)
print df11
df22 = df2.T.reindex(columns=pandas.MultiIndex.from_product([df1.columns, df2.index]), level=1)
print df22

df3 = df11.mul(df22)
print df3