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

Lemarchand Barker lemarchand8679 en gmail.com
Mar Ago 4 08:21:50 EDT 2020


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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200804/6afdb6f1/attachment.html>


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