« first day (1484 days earlier)      last day (1617 days later) » 
00:00 - 16:0016:00 - 21:00

4:14 PM
@LucasDamian No puedes "aplicar ln" a cada sumando. Puedes aplicarlo a ambos miembros de la igualdad, pero no te lleva muy lejos, porque el logaritmo de una suma no es igual a la suma de logaritmos. La forma de resolverlo es la que te dio Mauricio
 
@abulafia =(
 
Lo siento :(
 
fue lo única manera que se me ocurrió, entre ansiedad, nervios, calor, el reloj que me apuraba
era el único tema que no pude pulir bien, pero bueno.. el otro que tenia dudas, en un ratico te muestro, y te comparto mi resolución
 
Otra forma de verlo, equivalente a la de Mauricio, es hacer un cambio de variable. Llamemos por ejemplo v=3^x. Entonces tu ecuación sería 3v+3v+3v+v+v/3 = 120. De ahi no es difícil despejar v que sale 11.6129

Entonces sabemos que v = 11.6129 = 3^x, y ahora si podemos aplicar logaritmos: ln(11.6129) = x*ln(3), de donde sacamos x (sale 2.232)
 
tengo que ver bien lo del cambio de variable,
@abulafia en ese, lo resolví asi.. :
y ahi deducí que esa fraccion deberia ser 8 , entonces propuse otra igualdad y despeje x
son los dos ejercicios que me generaron muchas dudas, es más.. los resolví faltando 10min, porque no queria entregar sin plantear 1 ejercicio
 
4:36 PM
@LucasDamian Sí, ese es correcto
 
=D
mi bala de plata
me inscribiré al curso de verano de algebra
es lo que más me cuesta
 
Buenas, tengo una sobre las credenciales para clonar un repositorio git de gitlab. ¿Alguien puede echarme una mano?
 
@MrCode Cuál es el problema
 
Buenas @abulafia, resulta que a la hora de clonar el repositorio me pide credenciales, ¿son las de la cuenta de gitlab o tengo que configurar algo alli antes? Clonado via https
 
Son tu nombre de usuario y contraseña de Gitlab, las mismas que usarías para entrar por su página web
Te las pedirá cada vez que hagas clone, pull, fetch o push
 
4:49 PM
y hay alguna forma de que no me las pida cada vez?
 
Puedes habilitar una especie de cache que las recuerda durante un tiempo, unas horas
 
umm y algo que dure algo mas?
 
Puedes especificar el timeout que desees
pero no veo muy aconsejable poner tiempos demasiado largos
 
2 dias es mucho?
 
si quieres una solución mejor que no te ande pidiendo contraseñas, tendrías que crear una pareja de claves con ssh-keygen, subir la parte pública de esa clave a gitlab, y clonar vía ssh en vez de https. Si proteges la parte privada de la contraseña con una frase de paso (deberías) pero no quieres teclearla cada vez, instala un agente ssh
@MrCode Todo depende del nivel de seguridad que tengas en la máquina en que trabajas (si alguien puede entrar en ella en ese tiempo, podría cambiar tu repositorio remoto, pues no le pedirá contraseña), y de lo crítica que sea la seguridad de ese repositorio remoto
en estas cosas siempre hay que elegir entre mayor comodidad, o mayor seguridad
 
4:55 PM
al equipo solo entro yo y el proyecto es mas formativo que otra cosa, vamos que no es critico
algun agente ssh normalillo?
 
Qué operativo usas en tu equipo?
 
windows
 
y qué cliente git?
 
unicamente el git oficial por consola
 
Hum.... yo como herramientas ssh windows te recomendaría las de la suite putty (puttygen, plink, putty-agent)
pero no sé qué tal se llevarán con el cliente oficial git de consola
 
5:04 PM
ok, le echao un vistazo y pruebo
Muchas gracias
 
Conoceis Zeal?
O los afortunados con Mac o con iPad.. Dash kapeli.com/dash
 
@abulafia investigando he visto que el propio Git lleva una herramienta Git Gui que genera y permite conectarse por ssh
Con eso creo que me sirve
Gracias de nuevo
 
Ah, ok. Yo es que en windows no uso mucho git, siempre lo he usado en linux
 
5:19 PM
hola
@abulafia que tal? sabes acerca de django? tengo problemas para configurar el archivo cnf de mysql, no se donde colocarlo
 
@VictorAlvarado Lo siento, no sé nada de Django :-(
Es una asignatura pendiente, querría hacer algo con él. Siempre he usado Flask para las aplicaciones web
 
yo tambien uso flask, pero ahorita probando django jejeje
es como trabajar con flask y de una vez activar todas las extensiones
 
Sí, todo viene "hecho" por defecto :-)
He oído muchas cosas buenas
 
@LucasDamian, ¿qué estás estudiando?
¿Qué es de la vida de @JackNavaRow? Hace tiempo que no lo veo activo en el chat. Si andas por allí: Jack, there's a boat. Jack
 
5:46 PM
@MauricioContreras Ingeniería en sistemas, Si apruebo el examen de ayer
 
Claro que lo apruebas. Ingeniería es mi materia pendiente. No pude terminar esa carrera. Claro yo estudiaba Ingeniería Eléctrica y deseaba sacar la mención en Redes Eléctricas. Al final no pude terminar la carrera.
 
Me gusta mucho ciencia de datos, pero aquí solo hay posgrados en eso
mi ex jefe es ingeniero eléctrico
 
Luego, al estudiar Matemáticas mención Estadísticas, pude recién entender lo que intentó explicarme en su tiempo el profesor de Análisis Matemático durante la carrera de Ingeniería. XDD
 
en su momento se llamaba "Ingeniero Electricista"
jaja
 
Llegué a aborrecer dichas materias. Porque no tenía la base suficiente para entender las cosas. Las integrales eran chino para mi, y pues eso me frustraba mucho.
 
5:54 PM
Seguramente el año próximo estaré asi
 
Alguno que sepa de VUE? :)
 
@MauricioContreras las materias basicas son las dideificles en ingenieria
 
@abulafia como puedo hacer para borrar NaN de algunas filas de un df ?,
intente hacer esto, pero no me funciona
for index, row in isin.iterrows():
    query[(query['codigo']==row['codigo'])].dropna(inplace=True)
 
6:13 PM
¿Qué significa borrar el NaN? ¿Quieres eliminar todas las filas que tengan NaN en alguna de sus columnas? ¿Quieres rellenar las celdas NaN con otro valor? ¿Con cuál?
 
la segunda pregunta
 
Eliminar las filas?
 
tengo un dataframe donde necesito varias filas con NaN, pero especificamente en algunas, necesito eliminarlas
ahí en el ejemplo, funciona solo para mostrarlo
 
Ah.. eso puede ser un poco más complicado. df.dropna() las elimina todas
 
claro
 
6:17 PM
@LucasDamian ¿Cuál es el criterio para elegir las que quieres eliminar (o las que quieres conservar)?
 
@byte96 pues si
 
@byte96 Son dideificlesimas
 
una fila tiene
codigo desc version,
quiero borrar las filas NaN donde un codigo es NaN en todos los registros menos en el ultimo, eso quiere decir que por ejemplo de 20 versiones, solo apareció en la versión 20
 
No consigo verlo
 
mmm a ver
teengo los que quiero eliminar en otro df
 
6:21 PM
¿tienes por ahi un dataframe (o excel) con datos de ejemplo para que pueda entenderlo, y de paso para que pueda probar ideas sobre él?
 
si
a ver
como los puedo compartir?
 
Si es un .csv puedes pegarlo en un pastebin
 
nice
 
si es una excel... no sé qué tal send.firefox.com
 
6:33 PM
Ok, bajado. Puedes quitarlo si quieres
 
oka
te digo lo que hago , una vez que lo levantes
 
Ya estoy viendo el dataframe
 
auxiliar_una_corrida = query.groupby(['id_sc2_producto','talle','color','tipo_vigente'])['corrida_aux'].count().reset_index()
seria df en tu caso
 
hecho
 
eso muestra la cantidad de versiones
lo que hago despues es tomar solo las filas que tienen corrida_aux == 1
 
6:37 PM
y esas son las que quieres eliminar?
 
no
luego hago otro df, con corrida_aux == 25
pero con el df inicial
me vas siguiendo ?
 
No veo a donde vamos, pero te sigo :-)
En todo caso, a mi en auxiliar_una_corrida me salen solo 1 o 0 en la columna corrida_aux
 
claro, porque al df original lo chunksiziee demasiado creo
es que son 14kk filas
y creo que te he pasado mil
mmm
 
@LucasDamian Sí, mil
 
Bueno, pasando en limpio, al menos podes ver el modelo de datos
 
6:43 PM
Sí, pero todavía no entendí el problema (sobre el df original, digo)
 
un producto tiene talle color id_sc2_producto y tipo_vigente
 
veo que hay muchas filas que tienen NaN, y sé que quieres eliminar algunas de ellas, pero no entendí cuáles
 
si quiero eliminar uno que poseea NaN
claro
solo quiero eliminar los que poseen NaN, en todas filas menos en la ultima corrida
de 500k solo me ha saltado un solo producto
 
qué es la última corrida?
la última fila del mismo producto?
 
corrida_aux
 
6:46 PM
cada producto usa como clave única (por así decir) (talle, color, id_sc2_producto, tipo_vigente) ?
 
un producto aparece la cantidad de veces igual a las versiones
sep
 
o sea, ese cuarteto no se repite nunca en toda la tabla?
 
exacto
 
Ok, eso al menos lo pillé :-)
 
ahi tenes un producto
Lingerie150904001 L Black TOP
 
6:48 PM
Pero aún no entiendo qué filas quieres eliminar. Dices que los tengan NaN en todas las filas menos en la última corrida. Pero corrida_aux no es una fila, es una columna. Te refieres a que de todas las versiones del producto todas tengan NaN menos una?
 
exacto
obviamente en las primeras cuatro columnas no tendrá NaN, porque es una query producto de un cross join y un left, o sea estan mergeadas
 
@LucasDamian Otra vez me perdí :-) Pero espera, te pregunto una cosa
 
dime
 
En auxiliar_una_corrida se puede ver que el producto Lingerie150904001 L Black TOP tiene en la columna corrida_aux el valor 1. Yo entendí que entonces eso significaba que en el dataframe original tenía 1 sólo en una de las versiones
pero si miro df[df.id_sc2_producto=="Lingerie150904001"] veo:
 
porque deberia comparar talle color y tipo_vigente si quieres hacer una ¿mascara?
se llama máscara eso no?
 
6:54 PM
     id_sc2_producto talle  color tipo_vigente  corrida_aux
0  Lingerie150904001     L  Black          TOP          1.0
1  Lingerie150904001     M  Black          TOP          1.0
2  Lingerie150904001     S  Black          TOP          1.0
 
son 3 productos distintos
ya que uno es L otro M y otro S
y podría tener otro color también, pero creo que ese solo es black
 
Ah, ok. Es que estoy tratando de buscar entre los 1000 casos uno que sea como el que quieres eliminar, pero no lo encuentro
O todos tienen NaN en todas partes, o todos tienen 1 en todas partes
 
no creo que haya
 
Pues necesitaba uno, para entenderlo :-) (y para probar si algún método que se me ocurra funciona)
Bueno, puedo meter a mano algún NaN donde hay unos
 
la corrida 1, son 60mil productos aprox, por eso, es como que solo tendrias corrida 1 no ?
 
6:56 PM
@abulafia jajajaja :v
 
@byte96 ;-P
@LucasDamian No entiendo na...
¿qué significa "corrida" en este contexto?
es una ejecución de algo?
 
1	blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
2	blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
3	blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
4	blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
5	blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
6	blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
7	blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
8	blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
ejemplo a borrar es ese
@abulafia Si, el corrida = version
solo necesito la ultima fila de ese producto
 
@LucasDamian ¿por qué borrar si todos los casos tienen NaN? No decías que querías borrar todos los que fueran NaN, excepto el último? Había entendido que en la última aparición de ese producto ya no tenía que haber NaN
Ah, ya... Querías decir borrar todos excepto el último
 
vale
 
no que hubiera NaN en todas posiciones salvo la última (que es lo que había entendido yo)
 
7:01 PM
Es dificil explicar
 
y de entender :-))
 
y sí el que explica es confuso, más
 
A ver si lo entendí ahora. Si un producto tiene NaN en todas sus "corridas", entonces quieres quedarte solo con una
y en el resto de productos (que no tengan NaN en todas sus corridas)? Se dejan como están? O eliminar también todos los NaN salvo el último?
 
Espero que sea mas entendible hacer esto para explicar
df.loc[::-1]
estoy parado al reves ahora
 
si
 
7:04 PM
Me siento feliz de poder responder preguntas de Express, es mi área.
0
A: Deploy en heroku pero no cargan los estilos de mi aplicación

Mauricio ContrerasEl error que recibes es bastante explícito: te falta establecer las cabeceras apropiadas. Si leemos con detenimiento la documentación del método static() de Express (v4.x), nos encontramos que el mismo puede configurarse con ciertas opciones: (traducción propia) -setHeaders: Función para est...

 
ahora quiero borrar todo lo que sigue si tiene NaN en todas sus filas
siempre y cuando df.loc[::-1] sea un producto "vivo"
 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN BATMAAAAANNNN
 
jaja
NaN
hola
NaN
NaN
No se toca
 
Ah, espera, que el ejemplo que pusiste antes tenía 26 líneas y yo solo había visto hasta la 22. Por eso no endendía. Ahora ya sí (creo)
 
Aah jaja
 
7:07 PM
Vale, vale... Hmmm.. Rmmgmbl... déjame pensar
 
Alguien tiene por ahi una solucion de pasar las lineas de un fichero a mayuscula en C?
Yo tengo algo pero con problemas...
 
mmm yo recuerdo haber hecho un charTupper en para c
pero ve tu a saber donde estará
 
FILE *fich = fopen (argv[1], "r");
FILE *fich1;

char cadena[1000];
char cadena1[1000];


int nc = 0;
do{
cadena[nc] = (fgetc(fich));
cadena1[nc] = toupper(cadena[nc]);
fich1 = fopen("salida.txt", "wt");
fputs(cadena1[nc],fich1);
nc++;

if(feof(fich)){
cadena1[nc-1]=0;
}


}while(!feof(fich));
Eso tengo de estracto
El problema esta en el fputs para escribir el caracter
Imprimiendo el buffer en mayusculas lo hace sin problemas
 
@LucasDamian A ver, acabo de montar un dataframe más pequeñito de ejemplo a ver si me he aclarado. Sería el siguiente:
id_sc2_producto talle color tipo_vigente fecha_alta corrida_aux stock precio precio_original TIPO origen
blouse171103173	S	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
blouse171103173	S	Pastel	BLUSA	2019-11-15	26.0	1.0	16.0	16.0	BLUSA	SHEIN
blouse171103173	S	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
blouse171103173	S	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
blouse171103173	XL	Pastel	BLUSA	NaT	NaN	NaN	NaN	NaN	None	None
Y si no entendí mal, la blusa de talla S y la de talla L no se tocan. Y la de talla XL en cambio se borran todas las filas con NaN
 
claroo, tal cual lo dices
 
7:17 PM
Por fin!! Bueno, a ver qué se me ocurre
 
yo pense que haciendo df[df[lo que quierio borrar].dropna(inplace=True), me haría caso, pero no :(
el warning horrible de SettingCopy nose que
 
7:32 PM
Ok, se me ha ocurrido una cosa
def reducir(df):
  if (df.corrida_aux.isna().sum() >= 1
      and not np.isnan(df.corrida_aux.iloc[-1])):
    return df.dropna(how="any")
  else:
    return df

g = df.groupby(['id_sc2_producto', 'talle', 'color', 'tipo_vigente'])
result = g.apply(reducir).reset_index(drop=True)
Y sale lo siguiente
   id_sc2_producto talle   color  ... precio_original   TIPO  origen
0  blouse171103173     L  Pastel  ...             NaN   None    None
1  blouse171103173     L  Pastel  ...             NaN   None    None
2  blouse171103173     L  Pastel  ...            16.0  BLUSA   SHEIN
3  blouse171103173     L  Pastel  ...             NaN   None    None
4  blouse171103173     S  Pastel  ...             NaN   None    None
5  blouse171103173     S  Pastel  ...            16.0  BLUSA   SHEIN
6  blouse171103173     S  Pastel  ...             NaN   None    None
Aunque parece que ha desordenado las filas...
 
no hay problema con desordenar las filas
 
o mejor dicho los grupos
dentro de cada grupo siguen ordenadas
El resultado es correcto?
 
Si, parece que esta bien :-D
te cuento como lo pensé?
lo mio era más humilde y rebuscado
 
vale, ahora que entendí el problema igual entiendo tu solución
luego, si no la ves clara, te explico la mía
(por cierto, al aplicar mi solución al df que me pasaste con 1000 filas, no elimina ninguna)
 
@abulafia no debería eliminar supongo
ahi lo voy a probar y te digo
 
7:37 PM
ya, supongo yo también que no se dio ningún caso
tarda un poquillo... casi 1s con 1000 entradas
 
a ver con 14kk como se porta
pone a calentar agua para el café
siempre que quiero usar timeit, no me funciona, termino usando start=datetime.datetime.today()
end = datetime.datetime.today()

print(str(end-start))
 
Es que timeit creo recordar que está pensado para cronometrar cosas que tardan muy poco (milisegundos) y entonces te lo ejecuta en bucle varias veces para quedarse con el promedio
 
si tardó 1 seg para 1000 entradas,
x seg 14kk entradas
14k seg?
3.8hs ?
aca puede ser util usar functools?
lru.cache
 
Vaya, no se lo que hablan, pero suena interesante, parece pruebas de concepto y de optimización
 
7:52 PM
@LucasDamian Creo que sí, debería ser O(n)
@LucasDamian No veo que ayude en este caso, pues no se repiten entradas. Cada grupo a procesar es diferente y por tanto cachear el resultado no sirve de nada
Qué son 14kk? Por qué hay dos k? No serán 14 millones, no?
 
Si
14 millones
 
@abulafia 14 cacas
 
@MauricioContreras XD
 
Jajaja
 
Yo tengo mi disco lleno de carpetas llamadas kk y ficheros llamados kk.py, kk.txt, kk.c, etc...
 
7:54 PM
jajajaja
los mios son puros Untitled
 
es un recordatorio que me dice, "puedes borrar esto cuando quieras, era solo un experimento"
 
Untitled.ipynb , y esta lleno de basura, cada celda es un programa distinto jaja
tardó menos de lo que pensaba
@abulafia A partir de ahora eres el Dios Abulafia
 
@LucasDamian Ha hecho lo que necesitabas?
 
Yes :-D
 
Wohoo!
Lo que más me costó fue entenderlo XD
 
7:59 PM
y encima es hora de irse a casa
jaja seguro, me cuesta expresarme bien
 
Oh, acabo de darme cuenta de un posible bug
 
@abulafia shhhhh, el muchacho cree que funciona
 
creo que no hace exactamente lo que pedías, aunque sí muy parecido.. Si un producto tiene todo NaN excepto alguna fila por el medio, y después otra vez NaN, y después distinto de NaN en la última fila, entonces se queda solo con la última fila de ese producto
y me temo que según tu especificación debía conservarlo tal cual
Pero tiene fácil solución. Cambia el >=1 por un ==1
@MauricioContreras ;-)
 
@abulafia eso no es un bug, es un typo. Shame on you
 
@MauricioContreras No, no. Lo escribí así a propósito porque en el dataframe en que yo trabajaba una columna que debía tener sólo unos o ceros, tenía un 16 en algún sitio, y por tanto lo de ==1 no me funcionaba y lo cambié a >=1 sin darme cuenta de que eso incumplía ligeramente la especificación del problema
 
8:07 PM
@abulafia estoy de coña, XDD. Es por sacar conversa. XDD Igual en python el experto eres tú, aunque entiendo en parte lo que intentaban hacer. Aquí estaba con mis palomitas leyendo entretenido.
 
Ya, hombre, como broma lo entendí :-)
 
8:20 PM
import pandas as 🐼
2
 
@abulafia cómo sacas ese código? ¿copy / paste?
🐼
 
@MauricioContreras Si
es un emoji
y los emojis son parte del estándar Unicode, por tanto son "texto"
se puede poner en cualquier interfaz textual
 
Si, eso lo entiendo. Pero me rompe el coco no poder escaparlos aqui, como por ejemplo \125f o algo por el estilo
 
otro asunto es que el decodificador unicode de la correspondiente aplicación sepa decodificarlos correctamente y otro asunto más es que la fuente que los ha de mostrar tenga soporte para ellos (o si no, que se cargue otra fuetne apropiada)
:smile:
no, eso tampoco va
 
Desde el móvil los inserta directamente, pero en la versión de escritorio no lo hace. :(
igual siempre podemos confiar en Lenny: ¯_(ツ)_/¯
¯_(ツ)_/¯
¯\_(ツ)_/¯
 
8:26 PM
%uD83D%uDC3C
 
hay que meterlo en código o escapar el \
¯\_(ツ)_/¯
jejeje
 
🐼
Jooo
<pre>&#x1f43c;</pre>
 
<post>&#x1f43c;</post>
&#x1f43c;
 
Brr. OSX tiene un modo de entrada que permite teclear códigos Unicode en hex, y te los reemplaza por el correspondiente char. Pero sólo admite códigos de 4 cifras
los emoji tienen 5
 
linux no tiene eso
Arteze tiene una pregunta al respecto en el sitio
 
8:56 PM
Jaja será problema para el lucas del lunes @abulafia
 
00:00 - 16:0016:00 - 21:00

« first day (1484 days earlier)      last day (1617 days later) »