根据行内值和列标题在pandas数据框中设置值

时间:2019-12-12 20:40:20

标签: python pandas

我有一个(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']进行了尝试,但是没有用。我相信我的问题出在行的自引用上,但是我不确定。任何帮助表示赞赏。

0 个答案:

没有答案