比较特定列中的两个数据帧行

2024-10-03 04:35:32 发布

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

我有一个数据帧列表,在每一个数据帧中,每一行都是唯一的一天,列代表市场上的价格。列表中的每个元素都是不同的股票。我想比较每只股票,看看它们各自的日单元格,确定它们在单元格中都是正值还是负值。然后我想得到一个每只股票对每只股票的运行分数,如果两个值都为正,那么运行分数增加,如果为负,则运行分数减少。你知道吗

这是我到目前为止的代码-我认为我犯的主要错误是如何抓住特定的细胞

    def DetermineScoreArray(size):
scoreMatrix = np.zeros((size,size))
scoreArray = []
for stock_i in range(0,size):
    for stock_j in range(0,size):
        for day in range(0,STOCK_LEN):
            if(stock_i != stock_j):
                if ListOfFiles[stock_i].loc[day, "% C-O'"] > 0 and ListOfFiles[stock_j].loc[day, "% C-O'"] > 0:
                    scoreMatrix[stock_i][stock_j] += 1
                elif ListOfFiles[stock_i].loc[day, "% C-O'"] < 0 and ListOfFiles[stock_j].loc[day, "% C-O'"] < 0:
                    scoreMatrix[stock_i][stock_j] += 0.5
                else:
                    scoreMatrix[stock_i][stock_j] -= 1
            else:
                scoreMatrix[stock_i][stock_j] == 0

for stock_i in range(0,size):
    max = ""
    for stock_j in range(0,size):
        if(scoreMatrix[stock_i][stock_j] > max):
            max = stock_j
    scoreArray.append(max)
print(scoreArray)

只是解释一下代码- size是ListOfFiles列表中的数据帧数, 我创建了一个记分矩阵来跟踪每只股票的运行分数,以及它与另一只股票的比较 scoreArray是特定股票的最高分数,我希望在该数组中存储相应的股票 所以我首先遍历每只股票,每次我把它和其他股票比较,这就是前两个for循环 在这些比较中,我想计算每天的分数,这样我就有了另一个for循环 然后我不想把一只股票和它自己做比较,最后我有一些关于股票本身的条件,以及它们如何改变分数。 这就是我认为我的错误所在,我认为我没有使用正确的语法来获取正确的单元格。你知道吗

提前谢谢

我刚接触熊猫,所以请对我宽容一点。你知道吗


Tags: 数据in列表forsizestockrange分数