python - 根据另一个数据帧的值更新数据帧

标签 python pandas dataframe

我有两个数据框,如下所示:

            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/

相关文章:

Python - Beautifulsoup 仅计算标签的外部标签子项

python - 修改数据框行 - Panda Python

python - 使用两列中的值对 Pandas 数据框进行子集化

python - 如何在数据帧上使用 sort_index()?

python - 在 Pandas 中转置列和排名值

python - 为什么我应该在 python 中使用类?

python - 如何将python响应字符串转换为Json

python - 如何在列表理解中正确捕获生成器输出?

python - pandas 新列 if 语句

python - 如何计算一个值的出现次数,直到它变为另一个值?