比较Pandas中特定列的两个Dataframes行

时间:2018-03-25 15:48:01

标签: python pandas numpy stock

我有一个DataFrame列表,在每个DataFrame中,每一行都是唯一的一天,列代表市场中的价格。列表中的每个元素都是不同的股票。我想比较每个股票,并查看他们各自的日期单元格,并确定它们是单元格中的正值还是负值。然后,我希望每个股票的每个股票都有一个得分,如果这些值都是正数,则运行得分会增加,如果是负数,则运行得分会降低。

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

    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列表中的DataFrame数量, 我创建了一个scoreMatrix来跟踪每只股票的运行得分以及它与另一只股票的比较情况 scoreArray是特定股票的最高分数,我希望在该数组中存储相应的股票 所以我首先遍历每个股票,每次我将它与所有其他股票进行比较,那就是前两个for循环 在这些比较中,我想计算每一天的分数,所以我有另一个for循环 然后我不想将1股票与自己进行比较,最后我对股票本身以及他们如何改变评分有一些条件。 这主要是我认为我的错误,我认为我没有使用正确的语法来获得正确的单元格。

提前致谢

我是熊猫的新手,所以请放轻松我。

0 个答案:

没有答案