Eu tenho um dataframe ( training_df
) com 4 colunas, cada uma contendo cerca de 150 linhas. Eu também tenho a seguinte função:
def normalise(theMin, theMax, theVal):
if(theMin == theVal):
return 0
else if(theMax == theVal):
return 1
return (theVal - theMin) / (theMax - theMin)
Agora, o que eu quero fazer é iterar por todas as quatro colunas do meu dataframe por vez e iterar por todas as linhas em cada coluna e para cada valor nas linhas (haverá, é claro, apenas uma célula em cada linha) que eu quero para substituí-los por qualquer valor retornado da normalise
função. Então, tentei algo assim, olhando para as perguntas já feitas neste fórum:
for column in training_df:
theMin = training_df[column].min()
theMax = training_df[column].max()
for i in training_df[[column]].iterrows():
training_df[[column[i]]] = normalise(theMin, theMax, i)
Mas eu entendi TypeError: string indices must be integers
que sou muito novo em Python, pandas e mineração de dados, então se alguém pudesse esclarecer isso um pouco, realmente apreciaria. Desde já, obrigado.
O que eu farei ..
df.apply(lambda x : (x-x.min())/(x.max()-x.min()))
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras