我下载了一个关于国际足球比赛结果的数据集,我在可视化一件事上遇到了问题。列名称如下:
日期
主队
客场队
主场得分
客场得分
锦标赛
城市(比赛发生地)
国家(比赛发生地)
中立(如果比赛发生在主队国家以外,则为TRUE,否则为FALSE。)
我想找出比分和比赛时间之间的关系。为此,我想打印出(然后计数)所有行,其中:
- home_team == city and home_score > away_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是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)
型
打印neutral == 'FALSE的所有行
df[df['neutral'].str.contains("FALSE")]
型
遇到错误:分析时出现意外EOF
4条答案
按热度按时间vfh0ocws1#
IIUC这应该会让你看到你想要的行。试试看
字符串
y0u0uwnf2#
将
home_team
与city
进行比较是行不通的,因为一个是国家,另一个是国家中的城市。您是否正在尝试解决计算主客场比赛总比分的问题?lnvxswe23#
你想太多了一般来说,如果你在pandas Dataframe 上使用python循环,你就做错了。在这种情况下,你可以像这样得到你要找的计数:
字符串
xzlaal3s4#
根据所提供的信息,以下是您的代码。
字符串
根据您的详细信息,您的要求是
df['neutral']
是一个布尔列,正如您所说,您只需要True
。如果city
等于home_team
,则home_team
的得分高于away_team
,如果city
等于away_team
,则away_team
的得分更高。