Olá, Danilo! Tudo bom? Espero que sim.
Você pode utilizar a sua função get_atribute_hp
sobre outras colunas desde que construa parâmetros para as variáveis que deseja manipular. Vamos alterar algumas coisas para facilitar a leitura:
def get_atribute(data_source: pd.DataFrame, atribute_choosed: str):
for atribute in data_source:
if atribute['stat']['name'] == atribute_choosed:
return atribute['base_stat']
No código acima, eu criei mais um parâmetro com a característica que você está analisando, nesse caso poderia ser algo como atribute_choosed = "hp", e também indiquei os tipos deles utilizando a técnica de Type Hint, mas não afeta o código.
Dessa maneira, você consegue criar outra função auxiliar, tal como:
def apply_to_dataframe_my_function(dataframe, atribute):
return dataframe.stat.apply(get_atribute(dataframe, atribute))
Que pede um atributo do tipo string, e aplica a função get_atribute
com aquele atributo escolhido ao seu dataframe indicado.
Uma outra possibilidade é criar apenas uma função e aplicar sobre o DataFrame inteiro, o pandas também dá essa possibilidade. Mas para este caso, seria interessante um outro dataframe cópia, que representassem os dados modificados
Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!