有没有一种方法可以逐行遍历熊猫数据框,并将每一行打印为一行,并带有相应的团队ID和结果到文本文件?

问题描述

我在包含EPL比赛结果的数据框中导入了一个csv,并在一个文本文件中保存了每个球队名称一个球队ID号。

df_results:
    HomeTeam    AwayTeam    HomeGoals   AwayGoals
0   Man United  Leicester      2            1
1   Bournemouth Cardiff        2            0
2   Fulham  Crystal Palace     0            2
3   Huddersfield    Chelsea    0            3
4   Newcastle   Tottenham      1            2
teams.txt:
1,Man United
2,Bournemouth
3,Fulham
4,Huddersfield
5,Newcastle
6,Watford
7,Wolves
8,Arsenal
9,Liverpool
10,Southampton
11,Cardiff
12,Chelsea
13,Everton
14,Leicester
15,Tottenham
16,West Ham
17,Brighton
18,Burnley
19,Man City
20,Crystal Palace

有没有一种方法可以逐行遍历熊猫数据框,并将每一行打印为一行,并带有相应的团队ID,并将结果打印到一个文本文件中,并以逗号分隔?

例如:

0   Man United  Leicester   2          1

最终结果:

1,1,2,14,-1,1
First column = home team id
Second column = 1
Third column = HomeGoals
Fourth column = Away Team id
Fifth column = -1
Sixth column = AwayGoals

文本文件最终看起来像这样:

1,1
2,11,0
3,20,2
4,12,3
5,15,2

有人做过吗?我试图自己解决这个问题,但是,这只是导致我手动抄写了此内容。请让我知道是否需要进一步说明。

解决方法

xwalkteam_id之间使用人行横道team_name,其中team_nameHomeTeam等一对一完美匹配:

df['home_team_id'] = df['HomeTeam'].map(xwalk.set_index('team_name')['team_id'])
df['away_team_id'] = df['AwayTeam'].map(xwalk.set_index('team_name')['team_id'])

然后按所需顺序对列进行重新排序,并以CSV格式通过header=False打印。您可能需要通过分配-1等来创建列1df['column_name'] = -1