打印两列相同的所有行

时间:2019-08-31 14:48:45

标签: python pandas dataframe

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

日期

home_team

away_team

home_score

away_score

比赛

城市(比赛发生地)

国家(比赛发生地)

中立(如果比赛在主队国家/地区之外进行,则为TRUE,否则为FALSE。)

我试图弄清楚分数与比赛时间之间的相关性。为此,我想打印出(然后计数)其中的所有行:

  • home_team ==城市和home_score> away_score
  • away_team ==城市和away_score> home_score

此外,如果你们知道如何在不设置两个单独条件的情况下将它们结合起来,那也很高兴!

如果有人感兴趣,可以在这里找到数据集:https://www.kaggle.com/martj42/international-football-results-from-1872-to-2017

我尝试了以下方法,但是没有用

for row in df:
    if df['home_team'] == df['city'] and home_score > away_score:
        print (row)

这是我的代码:

df = pd.read_csv('results.csv')

由于某种原因,True / False是布尔值,所以我将其更改为str

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

for column in booleandf:
    df['neutral'] = df['neutral'].map(df_str)

打印中立=='FALSE

的所有行
df[df['neutral'].str.contains("FALSE")]

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

3 个答案:

答案 0 :(得分:0)

IIUC,这将为您提供要可视化​​的行。试试吧

List<Object>

答案 1 :(得分:0)

home_teamcity进行比较是行不通的,因为一个是国家/地区,另一个是该国家/地区内的城市。您是否要解决计算主场/客场比赛的全球得分的问题?

答案 2 :(得分:0)

您对此太想了。通常,如果在pandas数据框上使用python循环,则说明这样做是错误的。在这种情况下,您可以像这样获得所需的计数:

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