将for循环中的列名替换为player1、player2、player3

2024-09-30 10:31:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由列组成的数据框架:

print(players_hrpm_all.columns)

['minute', 'kiki fleuren', 'noor driessen', 'loyce bettonvil',
       'frode vd schans', 'ilse kuijt', 'alina sendar', 'fleur kuijt',
       'sonja kuijt', 'jamy de kock', 'ellen meeringa', 'jill bettonvil',
       'charlotte van kleef', 'quarter']

我只想更改带有playernames的列,为此我编写了以下代码:

player_columns = [col for col in players_hrpm_all.columns if ' ' in col]
print(players_columns)

['kiki fleuren', 'noor driessen', 'loyce bettonvil', 'frode vd schans', 'ilse kuijt', 'alina sendar', 'fleur kuijt', 'sonja kuijt', 'jamy de kock', 'ellen meeringa', 'jill bettonvil', 'charlotte van kleef']

我想迭代此列表中的所有名称,并将其更改为:

['player1', 'player2', ... ]

我试过好几种方法,但都没能奏效。。。 以下是我尝试过的一些事情:

def incrementer():
    counter = 0
    def increment():
        nonlocal counter
        counter += 1
        return counter
    return increment

increment = incrementer()

increment() #1
increment() #2

player = "player"

for column in players_hrpm_all[players_columns]:
    players_hrpm_all = players_hrpm_all.rename(columns = {column : player+str(increment())})

print(players_hrpm_all.columns)


Index(['minute', 'player1', 'player2', 'player3', 'player4', 'player5',
       'player6', 'player7', 'player8', 'player9', 'player10', 'player11',
       'player12', 'quarter'],
      dtype='object')

Tags: columnsincountercolallplayerprintplayers

热门问题