[Python-es] [Consulta] lista .index()

David Suárez david.suarez en yahoo.com
Mar Ago 4 11:55:28 EDT 2020


Hola,

ya pude abrir, aunque con trabajos el archivo. Creo que podría servirte el
siguiente código:

>> import pandas as pd
>> leer = pd.read_csv('gavade.csv')
>> leer[leer.LABORATORIO == "Alcon"]

Creo que con eso ya tienes suficiente para replicar el funcionamiento de tu
código original. Como ves, las estructuras de Pandas funcionan en parte
como una base de datos relacional, así que probablemente ya no necesitarás
usar .index(). Sólo para incitarte a aprender más de Pandas, la siguiente
instrucción te da el promedio de los valores de IMPORTE_AFILIADO para los
items del laboratorio Alcon:

>>> leer[leer.LABORATORIO == "Alcon"].IMPORTE_AFILIADO.mean()

Saludos y suerte

El mar., 4 de ago. de 2020 a la(s) 07:22, Lemarchand Barker (
lemarchand8679 en gmail.com) escribió:

> Buenos días, dale ahí voy.
> A ver si se puede acceder: gavade.csv
> <https://drive.google.com/drive/u/1/my-drive>
> Gracias, saludos
>
> El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (<
> python-es en python.org>) escribió:
>
>> Lamentablemente no pude bajar el csv. El sitio me pedía crear una cuenta
>> antes para poder bajarlo >:-/ pero si lo compartes por Dropbox o Google
>> Drive sería mejor.
>>
>> El lun., 3 de ago. de 2020 a la(s) 18:42, Lemarchand Barker (
>> lemarchand8679 en gmail.com) escribió:
>>
>>> Hice un leve intento de usar DataFrame, me costó un poco pero supongo
>>> que debo sentarme y practicar más el tema de pandas.
>>> Voy a probar lo que me dijiste.
>>> Dejo link dónde está el csv: gavade.csv
>>> <https://www.4shared.com/file/2-ZFJqmVea/gavade.html>
>>> Muchas gracias
>>>
>>>
>>> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (<
>>> python-es en python.org>) escribió:
>>>
>>>> Hola,
>>>>
>>>> para ayudarte sería útil que nos compartieras al menos un fragmento de
>>>> la tabla, pero de entrada pienso que podrías jugar un poco con el argumento
>>>> *index_col* de read_csv y que en lugar de crear una lista con los
>>>> nombres de los laboratorios uses directamente el DataFrame de pandas para
>>>> obtener los datos.
>>>>
>>>> Es difícil sin conocer la estructura de tus datos, pero algo así como
>>>> el siguiente código podría serte útil:
>>>> >>> posiciones = leer.Laboratorio == "Alcon" #Esto te devuelve un
>>>> vector lógico con True en aquellas posiciones donde el dato coincida con
>>>> "Alcon"
>>>> >>> leer.Indice[posiciones] # Esto te devuelve un vector con los
>>>> índices (de tu archivo .csv) correspondientes al laboratorio Alcon. Algo
>>>> equivalente a la lista [60, 61, ...]
>>>>
>>>> Haz la prueba y creo que si checas todas las prestaciones de Pandas ya
>>>> no querrás usar .index()
>>>>
>>>> Saludos y espero que esto te ayude,
>>>> David
>>>>
>>>> El lun., 3 de ago. de 2020 a la(s) 15:52, Lemarchand Barker (
>>>> lemarchand8679 en gmail.com) escribió:
>>>>
>>>>> Parece que no pasó el mail. El csv se lee perfecto y la primer columna
>>>>> de la izquierda que sería el índice está ordenado, el único valor que
>>>>> es el código de cada uno de los medicamentos es el que va cambiando y
>>>>> no necesariamente es consecutivo, pero se los puede ordenar de menor a
>>>>> mayor que así es como figura. Pero el valor del índice, el que empieza
>>>>> con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el
>>>>> índice que me da de resultado no coincide con el que figura en el csv.
>>>>> Gracias, saludos
>>>>>
>>>>> El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es
>>>>> (<python-es en python.org>) escribió:
>>>>> >
>>>>> > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un
>>>>> laboratorio, y que muestre la posición y el nombre del laboratorio en la
>>>>> misma línea (o los laboratorios) pero sólo obtenés el índice?
>>>>> >
>>>>> >
>>>>> >
>>>>> > PD: nunca voy a entender la necesidad o necedad de responder sin
>>>>> responder, ¡hay que tener ganas!
>>>>> >
>>>>> >
>>>>> > -
>>>>> >
>>>>> > Sent with ProtonMail Secure Email.
>>>>> >
>>>>> > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>>>> > On Monday, 3 de August de 2020 16:01, Lemarchand Barker <
>>>>> lemarchand8679 en gmail.com> wrote:
>>>>> >
>>>>> > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo
>>>>> csv,
>>>>> > > en este caso lo que hice fue crear una lista llamada laboratorios
>>>>> la
>>>>> > > cual contiene el nombre de todos los laboratorios que figuran en el
>>>>> > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso
>>>>> el
>>>>> > > nombre del laboratorio y vi que se usa index() para conocer la
>>>>> > > posición de un valor contenido en la lista. Entonces decidí probar
>>>>> > > ingresando el nombre de un laboratorio para ver si me da el índice:
>>>>> > >
>>>>> > > leer = pd.read_csv('gavade.csv')
>>>>> > >
>>>>> > > laboratorios = []
>>>>> > >
>>>>> > > for lab in leer.iloc[0:8122, 4]:
>>>>> > > laboratorios.append(lab)
>>>>> > >
>>>>> > > lab = input("Ingrese nombre del laboratorio: ")
>>>>> > > print(laboratorios.index(lab))
>>>>> > >
>>>>> > > Cuando ejecuto se ve así:
>>>>> > >
>>>>> > > Ingrese nombre del laboratorio: Alcon
>>>>> > > 58
>>>>> > >
>>>>> > > La cuestión es que en la posición 58, no figura el laboratorio que
>>>>> > > ingresé. El orden es así:
>>>>> > > 58 Abbott EPD
>>>>> > > 59 Abbott EPD
>>>>> > > 60 Alcon
>>>>> > > 61 Alcon
>>>>> > >
>>>>> > > No entiendo, estoy usando mal la función o no se ajusta a lo que
>>>>> > > necesito? Qué estoy haciendo mal?
>>>>> > > Muchas gracias, saludos
>>>>> > >
>>>>> > > Python-es mailing list
>>>>> > > Python-es en python.org
>>>>> > > https://mail.python.org/mailman/listinfo/python-es
>>>>> >
>>>>> >
>>>>> > _______________________________________________
>>>>> > Python-es mailing list
>>>>> > Python-es en python.org
>>>>> > https://mail.python.org/mailman/listinfo/python-es
>>>>> _______________________________________________
>>>>> Python-es mailing list
>>>>> Python-es en python.org
>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>>
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200804/01859342/attachment.html>


Más información sobre la lista de distribución Python-es