我有一个(n-1)xn矩阵构建为Pandas数据帧。看起来像这样:
IDX | team | Louisville | Vanderbilt | Miami | ... | Toledo | Duke |
----------------------------------------------------------------------
| Louisville | 14 | 0 | 0 | ... | 0 | 0 |
----------------------------------------------------------------------
| Vanderbilt | 0 14 | 0 | ... | 0 | 0 |
然后继续。矩阵的对角线填充了团队踢了多少场比赛(路易斯维尔总共有14场比赛)。数据帧中的其余值均为0。
笔记本中还有一个数据框,称为“游戏”,其列标题为:
games = pd.DataFrame(columns = ['team1','team2','team1points','team2points']
充满游戏数据,每场游戏一行。我要做的是为每个团队建立对手列表,然后在矩阵(行团队在其中扮演列团队)中简单地放置一个负数。这是我正在尝试使用的代码:
def fillnegones(row):
teamsgames = games[(games['team1'] == row[0]) | (games['team2'] == row[0])]
opponents = list(teamsgames[teamsgames['team1'] != row[0]]['team1'])
opponents.extend(list(teamsgames[teamsgames['team2'] != row[0]]['team2']))
for team in opponents:
row[team] = (-1)
matrix = matrix.apply(fillnegones, axis=1)
我已经用row [0]和row ['team']进行了尝试,但是没有用。我相信我的问题出在行的自引用上,但是我不确定。任何帮助表示赞赏。