将数据帧的某一行乘以具有相同维度的另一数据帧的另一行的值

2024-10-03 15:30:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe,我正在填充它,通过按行迭代,并尝试将前一行乘以另一个具有相同维度的dataframe的另一行中包含的值,然后将结果行插入第一个dataframe。你知道吗

我使用了.loc来过滤每个数据帧的行,然后我尝试使用.mul,但是我得到了TypeError。出于某种原因,第一个数据帧.loc结果是一个换位序列,而第二个没有,我被迫添加一个.transpose()

dfPortW.loc[i,"NAV":] = dfPortW.loc[i-1,"NAV":].mul(dfReturns1.loc[dfReturns1["Dates"] == date, "NAV":].transpose()

Tags: 数据dataframedate序列locdatestransposemul
1条回答
网友
1楼 · 发布于 2024-10-03 15:30:42

好吧,我找到了解决办法。。。不是一个优雅的,但它的工作。你知道吗

我怀疑这个问题是因为pandas/python没有将dfReturns1单行作为一个系列来读取,而dfPortW是一个系列。解决方法是:

    j = dfReturns1["Dates"][dfReturns1["Dates"] == date]
    j = j.index[0]
    dfPortW.loc[i,"NAV":] = dfPortW.loc[i-1,"NAV":].mul(dfReturns1.loc[j,"NAV":], axis = 0)

这确保了这两个系列,这是一个系列。mul的工作刚刚好。。。再说一次,虽然不优雅,但很管用。你知道吗

相关问题 更多 >