Manera más rápida de cambiar cada valor en dataframe de ACUERDO al valor original
Tengo un dataframe con 30000 columnas y 4000 filas. Cada entrada de la celda contiene un número entero. Para CADA entrada, quiero multiplicar el contenido original con log(k/m),
donde k es el número total de filas de la ie.4000 y m es el número total de cero filas de ESA COLUMNA en PARTICULAR.
Mi actual código de usos:
for column in df.columns:
m = len(df[column].to_numpy().nonzero())
df[column] = df[column].apply(lambda x: x * np.log10(4000/m))
Esto me lleva horas (????). Espero que haya alguna manera más rápida de hacerlo, alguien tiene alguna idea?
Gracias