Closed joaomamorim closed 4 years ago
tem certeza, @joaomamorim? lembro de quando estava tratando os dados, os dados de 2017 não eram acumulativos. Mas, talvez isso tenha mudado e eu não percebi.
Por favor, se você tratá-los, submeta um pull request com esses dados.
@joaomamorim , os scouts de 2017 e 2018 estão com os dados acumulados como você bem detectou. O script que trata estes dados está disponível neste link
Se for do seu interesse posso criar uma função para fazer isso no Python ou no R.
Abraço
@joaomamorim, eu criei uma função python para pegar os scouts desagregados de uma certa rodada. Está aqui:
def get_scouts_for_round(df, round_):
suffixes = ('_curr', '_prev')
cols_current = [col + suffixes[0] for col in COLS_SCOUTS]
cols_prev = [col + suffixes[1] for col in COLS_SCOUTS]
df_round = df[df.rodada == round_]
if round_ == 1: return df_round
df_round_prev = df[df.rodada < round_].groupby('id')[COLS_SCOUTS].max()
df_players = df_round.merge(df_round_prev, how='left', on='id', suffixes=suffixes)
# if is the first round of a player, the scouts of previous rounds will be NaNs. Thus, set them to zero
df_players.fillna(value=0, inplace=True)
# compute the scouts
df_players[cols_current] = df_players[cols_current].values - df_players[cols_prev].values
# update the columns
df_players.drop(labels=cols_prev, axis=1, inplace=True)
df_players = df_players.rename(columns=dict(zip(cols_current, COLS_SCOUTS)))
df_players.SG = df_players.SG.clip(lower=0)
return df_players
Vale salientar que essa função espera que as colunas que representam a rodada e o id do atleta sejam chamadas
rodada
eid
, respectivamente.
aí é só rodar esse código para desagregar os scouts em um dataframe df
:
df_clean = pd.DataFrame([])
for i in range(1, 39):
df_round = get_scouts_for_round(df, i)
df_clean = df_clean.append(df_round, ignore_index=True)
df = df_clean.copy()
Espero que ajude!
Observei que o arquivo de scouts de 2017 estão com os dados acumulados, já os dados agregados não está acumulado.
Em que parte do código isso foi tratado? Vi o problema sendo tratado para o ano de 2015 apenas.