[英]how to multiply dataframes elementwise and create multi-index — Python
我有两个DataFrames date
和supply
:
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
我想将supply
的c1
列乘以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
我可以为此编写函数吗?
您可以重新索引两个数据框,以便它们的索引/列匹配,然后将它们相乘:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.