如果您将两个其他数据帧相乘以产生它,您如何一次设置熊猫数据框中的所有值?
问题描述:
我想采取两个数据帧,并将它们相乘以构成第三个数据帧。如果您将两个其他数据帧相乘以产生它,您如何一次设置熊猫数据框中的所有值?
说我有
HI BYE HE HER
Date
2011-01-10 2 2 2 2
2011-01-13 2 2 2 2
2011-01-13 2 2 2 2
2011-01-26 2 2 2 2
和
BRO CHICK DUDE MAN
Date
2011-01-10 2 2 2 2
2011-01-13 2 2 2 2
2011-01-13 2 2 2 2
2011-01-26 2 2 2 2
,我想,
MY NAME IS SLIM_SHADY
Date
2011-01-10 4 4 4 4
2011-01-13 4 4 4 4
2011-01-13 4 4 4 4
2011-01-26 4 4 4 4
如何在一行中做到这一点?
答
使用.values
转换为np.array
并执行元素方式的乘法。
df = pd.DataFrame(df1.values * df2.values,
index=df1.index, columns="MY NAME IS SLIM_SHADY".split())
print(df)
MY NAME IS SLIM_SHADY
Date
2011-01-10 4 4 4 4
2011-01-13 4 4 4 4
2011-01-13 4 4 4 4
2011-01-26 4 4 4 4
另一种方法是重命名索引,然后调用df.mul
:
df2.columns = df1.columns # could also add df2.index = df1.index for security
df = df1.mul(df2)
df.columns="MY NAME IS SLIM_SHADY".split()
print(df)
MY NAME IS SLIM_SHADY
Date
2011-01-10 4 4 4 4
2011-01-13 4 4 4 4
2011-01-13 4 4 4 4
2011-01-26 4 4 4 4
我更喜欢第一个。您? – dirtysocks45
@ dirtysocks45同样,它比第二个更清洁。 –
你介意检查我关于矢量化的另一个问题吗?我对最终答案的最后评论有一个问题。 – dirtysocks45