#python #pandas
#python #pandas
Вопрос:
Я пытаюсь объединить два фрейма данных:
df_&ames
:
jo&o_id rodada_id time_id time_nome adversario_id ... variacao_num media_num jo&os_num status ano
0 232423 1 293.0 Athletico-PR 267 ... 0.00 0.00 0 Nulo 2019
1 232423 1 293.0 Athletico-PR 267 ... 0.00 0.00 0 Nulo 2019
2 232423 1 293.0 Athletico-PR 267 ... 0.00 0.00 0 Nulo 2019
3 232423 1 293.0 Athletico-PR 267 ... 0.00 0.00 0 Nulo 2019
4 232423 1 293.0 Athletico-PR 267 ... -2.17 0.40 1 Nulo 2019
... ... ... ... ... ... ... ... ... ... ... ...
30825 232429 38 267.0 Vasco 315 ... 0.00 0.70 1 Nulo 2019
30826 232429 38 267.0 Vasco 315 ... -0.30 2.93 25 Dúvida 2019
30827 232429 38 267.0 Vasco 315 ... 0.00 2.39 17 Suspenso 2019
30828 232429 38 267.0 Vasco 315 ... 0.00 0.00 0 Nulo 2019
30829 232429 38 267.0 Vasco 315 ... 0.00 0.32 8 Dúvida 2019
shape: (30830, 19)
и df_players
:
rank atleta_nome posicao
player_id
82730 39 Marcelo Ran&el Goleiro
100651 136 Rodry&o Atacante
87863 140 Arrascaeta Meio-Campista
shape: (733, 4)
когда я пытаюсь присоединиться к ним, вот так:
df_joined = df_&ames.set_index('player_id').join(players.set_index('player_id'))
Я получаю сообщение об ошибке:
ValueError: columns overlap but no suffix specified: Index(['atleta_nome', 'posicao'],dtype='object')
Но если я попытаюсь объединить то же самое df_players
с другим df_&ames_2, вот так:
Unnamed: 0 atletas.nome atletas.slu& atletas.apelido ... PP GC DP round
0 1 Glaybson Ya&o Souza Lisboa ya&o-pikachu Ya&o Pikachu ... NaN NaN NaN 1
1 2 Juan Ramón Cazares Sevillano cazares Cazares ... NaN NaN NaN 1
2 3 Alessandro Vinícius Gonçalves da Silva alessandro-vinicius Alessandro Vinícius ... NaN NaN NaN 1
3 4 Die&o Alves Carreira die&o-alves Die&o Alves ... NaN NaN NaN 1
4 5 Réver Humberto Alves Araújo rever Réver ... NaN NaN NaN 1
.. ... ... ... ... ... .. .. .. ...
843 844 Lucas Piton Crivellaro lucas-piton Lucas Piton ... NaN NaN NaN 38
844 845 Alan Carlos de Paula Dias Filho alan Alan ... NaN NaN NaN 38
845 846 Roni Medeiros de Moura roni Roni ... NaN NaN NaN 38
846 847 Alexander Silva de Lucena alexander Alexander ... NaN NaN NaN 38
847 848 Riquelme Carvalho Araújo Viana riquelme Riquelme ... NaN NaN NaN 38
[30581 rows x 34 columns]
объединение работает.
Почему я могу присоединиться с помощью player_id
в первом случае, а не во втором?
Как мне это исправить? Мне нужно присоединиться df_&ames
Ответ №1:
Вы можете либо использовать mer&e
вместо join
, либо передавать суффиксы в своем вызове:
df_joined = df_&ames.set_index('player_id').join(players.set_index('player_id'), lsuffix="_&ames", rsuffix="_players")