Python 打印两列相同的所有行

Python 打印两列相同的所有行,python,pandas,dataframe,Python,Pandas,Dataframe,我下载了一个关于国际足球比赛结果的数据集,但我在可视化一件事上遇到了问题。列名称如下所示: 日期 主队 客队 本垒打分数 客场得分 比赛 城市(比赛发生地) 国家(比赛发生地) 中立(如果比赛发生在主队所在国以外,则为真,否则为假。) 我想弄清楚比分和比赛时间之间的关系。为此,我想打印(然后计数)所有行,其中: 主队==城市和主队得分>客场得分 客场球队==城市和客场得分>主场得分 另外,如果你们知道如何在不产生两个单独条件的情况下组合这些条件,那也很高兴知道 如果有人感兴趣,可在以下位置获

我下载了一个关于国际足球比赛结果的数据集,但我在可视化一件事上遇到了问题。列名称如下所示:

日期

主队

客队

本垒打分数

客场得分

比赛

城市(比赛发生地)

国家(比赛发生地)

中立(如果比赛发生在主队所在国以外,则为真,否则为假。)

我想弄清楚比分和比赛时间之间的关系。为此,我想打印(然后计数)所有行,其中:

  • 主队==城市和主队得分>客场得分
  • 客场球队==城市和客场得分>主场得分
另外,如果你们知道如何在不产生两个单独条件的情况下组合这些条件,那也很高兴知道

如果有人感兴趣,可在以下位置获取数据集:

我尝试了以下方法,但没有成功

for row in df:
    if df['home_team'] == df['city'] and home_score > away_score:
        print (row)
这是我的密码: 由于某种原因,True/False是bool值,所以我将其更改为str

booleandf = df.select_dtypes(include=[bool])
df_str = {True: 'TRUE', False: 'FALSE'}

for column in booleandf:
    df['neutral'] = df['neutral'].map(df_str)
打印中性=='假的所有行

df[df['neutral'].str.contains("FALSE")]

遇到错误:解析时出现意外的EOF

IIUC这将获得要可视化的行。试试看

df.loc[(df['neutral']=="FALSE") & (df['home_score'] > df['away_score'])]

母国团队
城市
进行比较是行不通的,因为一个是国家,另一个是国内城市。你是想解决主客场比赛的全球比分问题吗?

你想得太多了。通常,如果您在数据帧上使用python循环,那么您就做错了。在这种情况下,您可以通过以下方式获得所需的计数:

home_team_win_count = len(df[(df.home_team == df.country) & (df.home_score > df.away_score)])
home_team_win_count = len(df[(df.home_team == df.country) & (df.home_score > df.away_score)])