我有两个数据框,如下所示:
A B
date
2017-10-5 2 3
2017-10-6 5 5
2017-11-5 7 8
2017-11-6 11 13
W1 W2
date
2017-09-30 -0.2 0.01
2017-10-31 -0.003 0.04
我想创建一个包含以下内容的新数据框:
W1 * A W2 * B
date
2017-10-5 -0.2 * 2 0.01 * 3
2017-10-6 -0.2 * 5 0.01 * 5
2017-11-5 -0.003 * 7 0.04 * 8
2017-11-6 -0.003 * 11 0.04 * 13
最佳答案
在df2
上使用np.repeat
并相乘。看起来索引在这里不起作用。
df1 = df1.mul(np.repeat(df2.values, 2, axis=0))
或者,更一般地说,
df1 = df1.mul(np.repeat(df2.values, len(df1) // len(df2), axis=0))
print(df1)
A B
date
2017-10-5 -0.400 0.03
2017-10-6 -1.000 0.05
2017-11-5 -0.021 0.32
2017-11-6 -0.033 0.52
其中 len(df1)//len(df2)
计算它们的大小比率。
关于python - 根据另一个数据帧的值更新数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53092565/