比较两个数据帧中的数据并过滤它们

问题描述 投票:0回答:1

我最近参与了一个项目,其中使用 pandas 数据框来存储数据。我目前有两个数据框,其中包含来自体育博彩公司的足球比赛赔率,通过这些数据,我想比较两个博彩公司的赔率,并将最低赔率替换为最高赔率。在尝试实现这一目标的过程中,我似乎陷入了困境。我什至已经将 2 个 if 语句和 5 个 for 循环嵌套在一起,但我似乎仍然无法使其工作。我的代码目前(绝望地)看起来像这样:

for cols in df.columns:
    for colus in df1.columns:
        if cols == colus:
            for game in df.index:
                for games in df1.index:
                    for odd in df[f'{cols}']:
                        for odds in df1[f'{cols}']:
                            if fuzz.ratio(game, games) > 90 and odd > odds:
                                print(odd)
                            else:
                                pass
        else:
            pass

正如你所看到的,我的代码变得越来越混乱,我似乎找不到解决方案。这是我正在使用的数据框的一小部分

https://i.stack.imgur.com/uw1HJ.png (df1) https://i.stack.imgur.com/dRtZ6.png(df)

如您所见,我迫切需要帮助,并且非常感谢! <3

python pandas dataframe for-loop
1个回答
0
投票

我会把它分成几块,

第1步,模糊匹配游戏给他们一个game_id

*我会让你解决这个问题

第2步,将游戏id上的两个数据帧合并在一起 df = df.merge(df1, on='game_id', how='outer')

第3步,依次取两列赔率的最小值

df['min_home_odds'] = df[['min_home_x','min_home_y']].min(axis=1)

© www.soinside.com 2019 - 2024. All rights reserved.