У меня есть датафрейм ниже, в столбце entryName
которого есть несколько человек. Исходя из этого столбца (при условии groupby
), я хотел бы проверить другой rows
, чтобы увидеть, использовался ли человек в C1,C2,etc
снова в entryName
людях других записей. Таким образом, Player1
имеет две записи, он использовал Зак Париза в обеих записях. Процент использования Zachs будет 100% для Player1
. Player2
имеет 3 записи, он использовал Патрика Кейна в 1 из 3 записей. Процент использования Патрика будет 33% для Player2
. Выше я предполагал, что это будет использовать какой-то groupby
, но я не уверен, как он будет проверять все остальное. Любые советы будут очень полезны.
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.array([['Player1','Mark Scheifele','Pierre-Luc Dubois','Mats Zuccarello','Oliver Bjorkstrand','Nick Foligno','Ryan Suter','Seth Jones','Devan Dubnyk','Zach Parise'],['Player2','Kyle Connor','Pierre-Luc Dubois','Mats Zuccarello','Oliver Bjorkstrand','Nick Foligno','Ryan Suter','Seth Jones','Devan Dubnyk','Boone Jenner'],['Player2','Patrick Kane','Joseph Walter','Luke Kunin','Oliver Bjorkstrand','Mark Foligno','Ryan Suter','Matt Dumba','Alex Stalock','Eric Staal'],['Player2','Boone Jenner','Pierre-Luc Dubois','Mats Zuccarello','Oliver Bjorkstrand','Nick Foligno','Ryan Suter','Seth Jones','Devan Dubnyk','Kyle Connor'],['Player1','Patrick Kane','David Backes','Zach Parise','Oliver Bjorkstrand','Mark Foligno','Jonas Brodin','Matt Dumba','Alex Stalock','Eric Staal']]), columns=['entryName','C1','C2','W1','W2','W3','D1','D2','G','UTIL'])
df
entryName C1 ... G UTIL
0 Player1 Mark Scheifele ... Devan Dubnyk Zach Parise
1 Player2 Kyle Connor ... Devan Dubnyk Boone Jenner
2 Player2 Patrick Kane ... Alex Stalock Eric Staal
3 Player2 Boone Jenner ... Devan Dubnyk Kyle Connor
4 Player1 Patrick Kane ... Alex Stalock Eric Staal
[5 rows x 10 columns]
df_result = pd.DataFrame(data=np.array([['Player1','Mark Scheifele','50.00','Pierre-Luc Dubois','50.00','Mats Zuccarello','50.00','Oliver Bjorkstrand','100.00','Nick Foligno','50.00','Ryan Suter','50.00','Seth Jones','50.00','Devan Dubnyk','50.00','Zach Parise','100.00'],['Player2','Kyle Connor','66.66','Pierre-Luc Dubois','66.66','Mats Zuccarello','66.66','Oliver Bjorkstrand','100.00','Nick Foligno','66.66','Ryan Suter','100.00','Seth Jones','66.66','Devan Dubnyk','66.66','Boone Jenner','66.66'],['Player2','Patrick Kane','33.33','Joseph Walter','33.33','Luke Kunin','33.33','Oliver Bjorkstrand','100.00','Mark Foligno','33.33','Ryan Suter','100.00','Matt Dumba','33.33','Alex Stalock','33.33','Eric Staal','33.33'],['Player2','Boone Jenner','66.66','Pierre-Luc Dubois','66.66','Mats Zuccarello','66.66','Oliver Bjorkstrand','100.00','Nick Foligno','66.66','Ryan Suter','100.00','Seth Jones','66.66','Devan Dubnyk','66.66','Kyle Connor','66.66'],['Player1','Patrick Kane','50.00','David Backes','50.00','Zach Parise','100.00','Oliver Bjorkstrand','100.00','Mark Foligno','50.00','Jonas Brodin','50.00','Matt Dumba','50.00','Alex Stalock','50.00','Eric Staal','50.00']]), columns=['entryName','C1','C1_Spr','C2','C2_Spr','W1','W1_Spr','W2','W2_Spr','W3','W3_Spr','D1','D1_Spr','D2','D2_Spr','G','G_Spr','UTIL','UTIL_Spr'])
df_result
entryName C1 C1_Spr ... G_Spr UTIL UTIL_Spr
0 Player1 Mark Scheifele 50.00 ... 50.00 Zach Parise 100.00
1 Player2 Kyle Connor 66.66 ... 66.66 Boone Jenner 66.66
2 Player2 Patrick Kane 33.33 ... 33.33 Eric Staal 33.33
3 Player2 Boone Jenner 66.66 ... 66.66 Kyle Connor 66.66
4 Player1 Patrick Kane 50.00 ... 50.00 Eric Staal 50.00
[5 rows x 19 columns]