Re: [Python-es] Consulta

2023-03-12 Por tema Carlos Alberto Vaccaro
Gracias

El sáb, 11 de mar de 2023, 23:32, Andrés F. Cárdenas <
akardenasjime...@gmail.com> escribió:

> Hola! Nunca he usado tkinter, pero segun veo en este ejemplo
> https://gist.github.com/Yagisanatode/6ccef95e75c5686474c7 lo que tienes
> que hacer es llamar el metodo yview con el parametro end. Con eso deberia
> funcionar.
>
> En el link que te pase, esta mejor descrito, algo que tambien puedes hacer
> es buscar mas acerca de la propiedad yview para saber con mas ejemplos como
> funciona y que otros parametros puede recibir.
>
> Espero que te sirva el link, saludos.
>
> El sáb, 11 de mar de 2023, 7:53 a. m., Carlos Alberto Vaccaro <
> carlosvaccaro1...@gmail.com> escribió:
>
>> Estoy haciendo un programa en python3 y Tkinter y utilizo un
>> ScrolledText.
>> para mostrar los datos que voy recibiendo.
>> Quiero que automaticamente cuando los datos se van ingresando el texto se
>> mueva hacia arriba de tal modo que siempre se vea la ultima linea agregada
>> El siguiente es el codigo
>> bandeja = scrolledtext.ScrolledText(cuadro_1,
>> wrap = tkinter.WORD,
>> width = 55,
>> height = 10,
>> font = ("Times New Roman",12))
>> bandeja.place(x=15, y=30)
>>
>> y con la siguiente linea voy agregando el contenido
>> bandeja.insert(tkinter.INSERT, clectura)
>>
>> Como puedo hacer para que el texto se desplace hacia arriba
>> Desde ya agradecido
>> Carlos Vaccaro
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Consulta

2023-03-12 Por tema Miguel Sanchez vía Python-es
El Sat, 11 Mar 2023 09:52:47 -0300
Carlos Alberto Vaccaro  dijo:

> Estoy haciendo un programa en python3 y Tkinter y utilizo un ScrolledText.
> para mostrar los datos que voy recibiendo.
> Quiero que automaticamente cuando los datos se van ingresando el texto se
> mueva hacia arriba de tal modo que siempre se vea la ultima linea agregada
> El siguiente es el codigo
> bandeja = scrolledtext.ScrolledText(cuadro_1,
> wrap = tkinter.WORD,
> width = 55,
> height = 10,
> font = ("Times New Roman",12))
> bandeja.place(x=15, y=30)


Hola:


Hace años hice algo parecido:

Siempre he usado Tk definiendo la aplicación como una clase.

Tanto los widget como las funcionalidades son métodos o atributos de esa clase.

Las definiciones de los widget estan empaquetados como un método de la clase

def _area_salida(self):
self.salida = tk.Text(self.top)
ysb = ttk.Scrollbar(self.top, orient='vertical', 
command=self.salida.yview)
self.salida.configure(background='green4')
self.salida.configure(font=self.fija)
self.salida.configure(foreground='#00e100')
self.salida.configure(selectbackground='green1')
self.salida.configure(state='disabled')
self.salida.configure(width=60)
self.salida.configure(height=20)
self.salida.configure(wrap='word')
self.salida.configure(yscroll=ysb.set)

ysb.grid(row=0, column=3, sticky=(tk.N+tk.S))
self.salida.grid(row=0, column=2, rowspan=3, sticky=tk.NW)
self.salida['state'] = 'normal'
self.salida.delete('1.0', 'end')
self.salida['state'] = 'disabled'


Hay también un método para enviar el texto al widget:

def escribesalida(self, texto, coma=False):
""" Escribe algo en el widget "salida" """

self.salida['state'] = 'normal'
self.salida.insert('end', texto)
if coma:
self.salida.insert('end', ' ')
else:
self.salida.insert('end', '\n')
self.salida.see('end')
self.salida['state'] = 'disabled'


Para enviar texto llamas al método:

self.escribesalida(u"Termino lo que estoy haciendo y voy.") 
escribirá el texto y un salto de linea
self.escribesalida(u"Termino lo que estoy haciendo y voy.", ",") 
escribirá el texto sin el salto de linea


Espero te pueda ayudar en algo.


Saludos


Miguel Sánchez












___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Consulta

2023-03-11 Por tema Andrés F . Cárdenas
Hola! Nunca he usado tkinter, pero segun veo en este ejemplo
https://gist.github.com/Yagisanatode/6ccef95e75c5686474c7 lo que tienes que
hacer es llamar el metodo yview con el parametro end. Con eso deberia
funcionar.

En el link que te pase, esta mejor descrito, algo que tambien puedes hacer
es buscar mas acerca de la propiedad yview para saber con mas ejemplos como
funciona y que otros parametros puede recibir.

Espero que te sirva el link, saludos.

El sáb, 11 de mar de 2023, 7:53 a. m., Carlos Alberto Vaccaro <
carlosvaccaro1...@gmail.com> escribió:

> Estoy haciendo un programa en python3 y Tkinter y utilizo un ScrolledText.
>
> para mostrar los datos que voy recibiendo.
> Quiero que automaticamente cuando los datos se van ingresando el texto se
> mueva hacia arriba de tal modo que siempre se vea la ultima linea agregada
> El siguiente es el codigo
> bandeja = scrolledtext.ScrolledText(cuadro_1,
> wrap = tkinter.WORD,
> width = 55,
> height = 10,
> font = ("Times New Roman",12))
> bandeja.place(x=15, y=30)
>
> y con la siguiente linea voy agregando el contenido
> bandeja.insert(tkinter.INSERT, clectura)
>
> Como puedo hacer para que el texto se desplace hacia arriba
> Desde ya agradecido
> Carlos Vaccaro
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] Consulta

2023-03-11 Por tema Carlos Alberto Vaccaro
Estoy haciendo un programa en python3 y Tkinter y utilizo un ScrolledText.
para mostrar los datos que voy recibiendo.
Quiero que automaticamente cuando los datos se van ingresando el texto se
mueva hacia arriba de tal modo que siempre se vea la ultima linea agregada
El siguiente es el codigo
bandeja = scrolledtext.ScrolledText(cuadro_1,
wrap = tkinter.WORD,
width = 55,
height = 10,
font = ("Times New Roman",12))
bandeja.place(x=15, y=30)

y con la siguiente linea voy agregando el contenido
bandeja.insert(tkinter.INSERT, clectura)

Como puedo hacer para que el texto se desplace hacia arriba
Desde ya agradecido
Carlos Vaccaro
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Recorrer DataFrame

2020-09-21 Por tema Fernando Garcia
Supongo que en la orden print puedes incluir una condición, algo asi:
If True: print(lo que sea)

El lun., 21 sept. 2020 19:35, Fernando Garcia  escribió:

> Quiero decir que parece que toma la longitud de la lista mas larga y en
> las que no llegan lo completa con none
>
> El lun., 21 sept. 2020 17:28, Fernando Garcia 
> escribió:
>
>> Supongo que la única letra en la que no te sale 'none'  es en la B, que
>> es la que tiene más elementos.
>>
>> El lun., 21 sept. 2020 16:57, Lemarchand Barker 
>> escribió:
>>
>>> Buenas tanto tiempo! Les quiero hacer una consulta, sigo con mi
>>> archivo .csv. Les comparto mi código:
>>>
>>> import pandas as pd
>>>
>>> leer = pd.read_csv('gavade.csv')
>>>
>>> diccionario = {
>>> "A": ['AbbotT Diabetes', 'Abbott EPD', 'Alcon', 'Allergan-Loa',
>>> 'Amgen',
>>>   'Andrómaco', 'Ariston', 'Aspen Argentina', 'AstraZeneca',
>>> 'Atlas',
>>>   'Austral'],
>>> "B": ['BD', 'Bagó', 'Baliarda', 'Bayer (PH)', 'Bayer Consumer',
>>> 'Beta',
>>>   'Betterlife SRL', 'Biol', 'Biopas Argentina', 'Bioprofarma
>>> Bagó',
>>>   'Biosidus Farma', 'Biosintex', 'Biosintex Retail', 'Biotechno
>>> Pharma',
>>>   'Biotenk', 'Boehringer Ingel'],
>>> "C": ['Casasco', 'Cetus', 'Craveri'],
>>> "D": ['Dallas', 'Denver Farma', 'Domínguez', 'Duncan'],
>>> "E": ['Eczane', 'Elea - Phoenix', 'Eli Lilly', 'Eurolab'],
>>> "F": ['Fabra', 'Fada Pharma', 'Fecofar', 'Ferring', 'Finadiet',
>>> 'Fortbenton',
>>>  'Francelab'],
>>> "G": ['GP Pharm', 'Gador', 'Galderma', 'Gemabiotech', 'Genomma Lab',
>>>   'GlaxoSmithKline', 'Gobbi', 'Géminis Farmacéutica'],
>>> "H": ['HLB Pharma'],
>>> "I": ['Investi'],
>>> "J": ['Janssen-Cilag', 'Johnson & Johnso'],
>>> "K": ['Klonal'],
>>> "L": ['LKM', 'LKM Onco/Especia', 'Lab Internaciona', 'Laboratorios
>>> Ber',
>>>   'Lafedar', 'Lazar', 'Lepetit', 'Lersan', 'Lundbeck'],
>>> "M": ['MSD Argentina SR', 'Mar', 'Max Vision', 'Merck Serono',
>>>   'Microsules Arg.', 'Monserrat', 'Montpellier'],
>>> "N": ['Northia', 'Nova Argentia', 'Novartis', 'Novartis - Sando',
>>>   'Novo Nordisk', 'Novoplos'],
>>> "O": ['Omega'],
>>> "P": ['Panalab', 'Pfizer', 'PharmaDorf', 'Pharmanove', 'Pharmatrix',
>>>   'Pierre Fabre Med', 'Poen'],
>>> "Q": ['Química Luar'],
>>> "R": ['Raffo', 'Raymos', 'Richet', 'Richmond', 'Roche Diabetes',
>>> 'Roemmers',
>>>   'Ronnet', 'Rontag', 'Rospaw', 'Rossmore Pharma'],
>>> "S": ['Sanitas', 'Sanofi Pasteur', 'Sanofi-Aventis', 'Sanofi-Aventis
>>> O',
>>>   'Savant Consumer', 'Savant Pharma', 'Savant Vitarum',
>>> 'Servier',
>>>   'Sidus', 'Sidus - Lifescan', 'Soubeiran Chobet', 'Spedrog
>>> Caillon',
>>>   'Szama'],
>>> "T": ['Takeda', 'Techsphere', 'Temis-Lostaló', 'Teva argentina',
>>>   'Trb-Pharma'],
>>> "V": ['Valmax', 'Vannier', 'Vannier - Grunen'],
>>> "W": ['Wunder Pharm']
>>> }
>>> df = pd.DataFrame.from_dict(diccionario, orient='index')
>>> # print(df)
>>> for indice_fila, fila in df.iterrows():
>>> print(indice_fila)
>>> print(fila)
>>>
>>> La salida es la siguiente:
>>> A
>>> 0 AbbotT Diabetes
>>> 1  Abbott EPD
>>> 2   Alcon
>>> 3Allergan-Loa
>>> 4   Amgen
>>> 5   Andrómaco
>>> 6 Ariston
>>> 7 Aspen Argentina
>>> 8 AstraZeneca
>>> 9   Atlas
>>> 10Austral
>>> 11   None
>>> 12   None
>>> 13   None
>>> 14   None
>>> 15   None
>>> Name: A, dtype: object
>>> B
>>> 0   BD
>>> 1 Bagó
>>> 2 Baliarda
>>> 3   Bayer (PH)
>>> 4   Bayer Consumer
>>> 5 Beta
>>> 6   Betterlife SRL
>>> 7 Biol
>>> 8 Biopas Argentina
>>> 9 Bioprofarma Bagó
>>> 10  Biosidus Farma
>>> 11   Biosintex
>>> 12Biosintex Retail
>>> 13Biotechno Pharma
>>> 14 Biotenk
>>> 15Boehringer Ingel
>>> Name: B, dtype: object
>>>
>>> Les comparto solo un fragmento ya que es bastante extensa la salida,
>>> pero mi pregunta es la siguiente, por qué en la letra A, completa los
>>> espacios con None y no corta en Austral que es el último? En otras
>>> letras pasa lo mismo, para completar pone None, hay alguna forma de
>>> evitar eso?. Perdón por lo estúpido de la pregunta, desde ya muchas
>>> gracias, saludos
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>>
>>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Recorrer DataFrame

2020-09-21 Por tema Fernando Garcia
Quiero decir que parece que toma la longitud de la lista mas larga y en las
que no llegan lo completa con none

El lun., 21 sept. 2020 17:28, Fernando Garcia  escribió:

> Supongo que la única letra en la que no te sale 'none'  es en la B, que es
> la que tiene más elementos.
>
> El lun., 21 sept. 2020 16:57, Lemarchand Barker 
> escribió:
>
>> Buenas tanto tiempo! Les quiero hacer una consulta, sigo con mi
>> archivo .csv. Les comparto mi código:
>>
>> import pandas as pd
>>
>> leer = pd.read_csv('gavade.csv')
>>
>> diccionario = {
>> "A": ['AbbotT Diabetes', 'Abbott EPD', 'Alcon', 'Allergan-Loa',
>> 'Amgen',
>>   'Andrómaco', 'Ariston', 'Aspen Argentina', 'AstraZeneca',
>> 'Atlas',
>>   'Austral'],
>> "B": ['BD', 'Bagó', 'Baliarda', 'Bayer (PH)', 'Bayer Consumer',
>> 'Beta',
>>   'Betterlife SRL', 'Biol', 'Biopas Argentina', 'Bioprofarma
>> Bagó',
>>   'Biosidus Farma', 'Biosintex', 'Biosintex Retail', 'Biotechno
>> Pharma',
>>   'Biotenk', 'Boehringer Ingel'],
>> "C": ['Casasco', 'Cetus', 'Craveri'],
>> "D": ['Dallas', 'Denver Farma', 'Domínguez', 'Duncan'],
>> "E": ['Eczane', 'Elea - Phoenix', 'Eli Lilly', 'Eurolab'],
>> "F": ['Fabra', 'Fada Pharma', 'Fecofar', 'Ferring', 'Finadiet',
>> 'Fortbenton',
>>  'Francelab'],
>> "G": ['GP Pharm', 'Gador', 'Galderma', 'Gemabiotech', 'Genomma Lab',
>>   'GlaxoSmithKline', 'Gobbi', 'Géminis Farmacéutica'],
>> "H": ['HLB Pharma'],
>> "I": ['Investi'],
>> "J": ['Janssen-Cilag', 'Johnson & Johnso'],
>> "K": ['Klonal'],
>> "L": ['LKM', 'LKM Onco/Especia', 'Lab Internaciona', 'Laboratorios
>> Ber',
>>   'Lafedar', 'Lazar', 'Lepetit', 'Lersan', 'Lundbeck'],
>> "M": ['MSD Argentina SR', 'Mar', 'Max Vision', 'Merck Serono',
>>   'Microsules Arg.', 'Monserrat', 'Montpellier'],
>> "N": ['Northia', 'Nova Argentia', 'Novartis', 'Novartis - Sando',
>>   'Novo Nordisk', 'Novoplos'],
>> "O": ['Omega'],
>> "P": ['Panalab', 'Pfizer', 'PharmaDorf', 'Pharmanove', 'Pharmatrix',
>>   'Pierre Fabre Med', 'Poen'],
>> "Q": ['Química Luar'],
>> "R": ['Raffo', 'Raymos', 'Richet', 'Richmond', 'Roche Diabetes',
>> 'Roemmers',
>>   'Ronnet', 'Rontag', 'Rospaw', 'Rossmore Pharma'],
>> "S": ['Sanitas', 'Sanofi Pasteur', 'Sanofi-Aventis', 'Sanofi-Aventis
>> O',
>>   'Savant Consumer', 'Savant Pharma', 'Savant Vitarum', 'Servier',
>>   'Sidus', 'Sidus - Lifescan', 'Soubeiran Chobet', 'Spedrog
>> Caillon',
>>   'Szama'],
>> "T": ['Takeda', 'Techsphere', 'Temis-Lostaló', 'Teva argentina',
>>   'Trb-Pharma'],
>> "V": ['Valmax', 'Vannier', 'Vannier - Grunen'],
>> "W": ['Wunder Pharm']
>> }
>> df = pd.DataFrame.from_dict(diccionario, orient='index')
>> # print(df)
>> for indice_fila, fila in df.iterrows():
>> print(indice_fila)
>> print(fila)
>>
>> La salida es la siguiente:
>> A
>> 0 AbbotT Diabetes
>> 1  Abbott EPD
>> 2   Alcon
>> 3Allergan-Loa
>> 4   Amgen
>> 5   Andrómaco
>> 6 Ariston
>> 7 Aspen Argentina
>> 8 AstraZeneca
>> 9   Atlas
>> 10Austral
>> 11   None
>> 12   None
>> 13   None
>> 14   None
>> 15   None
>> Name: A, dtype: object
>> B
>> 0   BD
>> 1 Bagó
>> 2 Baliarda
>> 3   Bayer (PH)
>> 4   Bayer Consumer
>> 5 Beta
>> 6   Betterlife SRL
>> 7 Biol
>> 8 Biopas Argentina
>> 9 Bioprofarma Bagó
>> 10  Biosidus Farma
>> 11   Biosintex
>> 12Biosintex Retail
>> 13Biotechno Pharma
>> 14 Biotenk
>> 15Boehringer Ingel
>> Name: B, dtype: object
>>
>> Les comparto solo un fragmento ya que es bastante extensa la salida,
>> pero mi pregunta es la siguiente, por qué en la letra A, completa los
>> espacios con None y no corta en Austral que es el último? En otras
>> letras pasa lo mismo, para completar pone None, hay alguna forma de
>> evitar eso?. Perdón por lo estúpido de la pregunta, desde ya muchas
>> gracias, saludos
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Recorrer DataFrame

2020-09-21 Por tema Fernando Garcia
Supongo que la única letra en la que no te sale 'none'  es en la B, que es
la que tiene más elementos.

El lun., 21 sept. 2020 16:57, Lemarchand Barker 
escribió:

> Buenas tanto tiempo! Les quiero hacer una consulta, sigo con mi
> archivo .csv. Les comparto mi código:
>
> import pandas as pd
>
> leer = pd.read_csv('gavade.csv')
>
> diccionario = {
> "A": ['AbbotT Diabetes', 'Abbott EPD', 'Alcon', 'Allergan-Loa',
> 'Amgen',
>   'Andrómaco', 'Ariston', 'Aspen Argentina', 'AstraZeneca',
> 'Atlas',
>   'Austral'],
> "B": ['BD', 'Bagó', 'Baliarda', 'Bayer (PH)', 'Bayer Consumer', 'Beta',
>   'Betterlife SRL', 'Biol', 'Biopas Argentina', 'Bioprofarma Bagó',
>   'Biosidus Farma', 'Biosintex', 'Biosintex Retail', 'Biotechno
> Pharma',
>   'Biotenk', 'Boehringer Ingel'],
> "C": ['Casasco', 'Cetus', 'Craveri'],
> "D": ['Dallas', 'Denver Farma', 'Domínguez', 'Duncan'],
> "E": ['Eczane', 'Elea - Phoenix', 'Eli Lilly', 'Eurolab'],
> "F": ['Fabra', 'Fada Pharma', 'Fecofar', 'Ferring', 'Finadiet',
> 'Fortbenton',
>  'Francelab'],
> "G": ['GP Pharm', 'Gador', 'Galderma', 'Gemabiotech', 'Genomma Lab',
>   'GlaxoSmithKline', 'Gobbi', 'Géminis Farmacéutica'],
> "H": ['HLB Pharma'],
> "I": ['Investi'],
> "J": ['Janssen-Cilag', 'Johnson & Johnso'],
> "K": ['Klonal'],
> "L": ['LKM', 'LKM Onco/Especia', 'Lab Internaciona', 'Laboratorios
> Ber',
>   'Lafedar', 'Lazar', 'Lepetit', 'Lersan', 'Lundbeck'],
> "M": ['MSD Argentina SR', 'Mar', 'Max Vision', 'Merck Serono',
>   'Microsules Arg.', 'Monserrat', 'Montpellier'],
> "N": ['Northia', 'Nova Argentia', 'Novartis', 'Novartis - Sando',
>   'Novo Nordisk', 'Novoplos'],
> "O": ['Omega'],
> "P": ['Panalab', 'Pfizer', 'PharmaDorf', 'Pharmanove', 'Pharmatrix',
>   'Pierre Fabre Med', 'Poen'],
> "Q": ['Química Luar'],
> "R": ['Raffo', 'Raymos', 'Richet', 'Richmond', 'Roche Diabetes',
> 'Roemmers',
>   'Ronnet', 'Rontag', 'Rospaw', 'Rossmore Pharma'],
> "S": ['Sanitas', 'Sanofi Pasteur', 'Sanofi-Aventis', 'Sanofi-Aventis
> O',
>   'Savant Consumer', 'Savant Pharma', 'Savant Vitarum', 'Servier',
>   'Sidus', 'Sidus - Lifescan', 'Soubeiran Chobet', 'Spedrog
> Caillon',
>   'Szama'],
> "T": ['Takeda', 'Techsphere', 'Temis-Lostaló', 'Teva argentina',
>   'Trb-Pharma'],
> "V": ['Valmax', 'Vannier', 'Vannier - Grunen'],
> "W": ['Wunder Pharm']
> }
> df = pd.DataFrame.from_dict(diccionario, orient='index')
> # print(df)
> for indice_fila, fila in df.iterrows():
> print(indice_fila)
> print(fila)
>
> La salida es la siguiente:
> A
> 0 AbbotT Diabetes
> 1  Abbott EPD
> 2   Alcon
> 3Allergan-Loa
> 4   Amgen
> 5   Andrómaco
> 6 Ariston
> 7 Aspen Argentina
> 8 AstraZeneca
> 9   Atlas
> 10Austral
> 11   None
> 12   None
> 13   None
> 14   None
> 15   None
> Name: A, dtype: object
> B
> 0   BD
> 1 Bagó
> 2 Baliarda
> 3   Bayer (PH)
> 4   Bayer Consumer
> 5 Beta
> 6   Betterlife SRL
> 7 Biol
> 8 Biopas Argentina
> 9 Bioprofarma Bagó
> 10  Biosidus Farma
> 11   Biosintex
> 12Biosintex Retail
> 13Biotechno Pharma
> 14 Biotenk
> 15Boehringer Ingel
> Name: B, dtype: object
>
> Les comparto solo un fragmento ya que es bastante extensa la salida,
> pero mi pregunta es la siguiente, por qué en la letra A, completa los
> espacios con None y no corta en Austral que es el último? En otras
> letras pasa lo mismo, para completar pone None, hay alguna forma de
> evitar eso?. Perdón por lo estúpido de la pregunta, desde ya muchas
> gracias, saludos
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] Recorrer DataFrame

2020-09-21 Por tema Lemarchand Barker
Buenas tanto tiempo! Les quiero hacer una consulta, sigo con mi
archivo .csv. Les comparto mi código:

import pandas as pd

leer = pd.read_csv('gavade.csv')

diccionario = {
"A": ['AbbotT Diabetes', 'Abbott EPD', 'Alcon', 'Allergan-Loa', 'Amgen',
  'Andrómaco', 'Ariston', 'Aspen Argentina', 'AstraZeneca', 'Atlas',
  'Austral'],
"B": ['BD', 'Bagó', 'Baliarda', 'Bayer (PH)', 'Bayer Consumer', 'Beta',
  'Betterlife SRL', 'Biol', 'Biopas Argentina', 'Bioprofarma Bagó',
  'Biosidus Farma', 'Biosintex', 'Biosintex Retail', 'Biotechno Pharma',
  'Biotenk', 'Boehringer Ingel'],
"C": ['Casasco', 'Cetus', 'Craveri'],
"D": ['Dallas', 'Denver Farma', 'Domínguez', 'Duncan'],
"E": ['Eczane', 'Elea - Phoenix', 'Eli Lilly', 'Eurolab'],
"F": ['Fabra', 'Fada Pharma', 'Fecofar', 'Ferring', 'Finadiet',
'Fortbenton',
 'Francelab'],
"G": ['GP Pharm', 'Gador', 'Galderma', 'Gemabiotech', 'Genomma Lab',
  'GlaxoSmithKline', 'Gobbi', 'Géminis Farmacéutica'],
"H": ['HLB Pharma'],
"I": ['Investi'],
"J": ['Janssen-Cilag', 'Johnson & Johnso'],
"K": ['Klonal'],
"L": ['LKM', 'LKM Onco/Especia', 'Lab Internaciona', 'Laboratorios Ber',
  'Lafedar', 'Lazar', 'Lepetit', 'Lersan', 'Lundbeck'],
"M": ['MSD Argentina SR', 'Mar', 'Max Vision', 'Merck Serono',
  'Microsules Arg.', 'Monserrat', 'Montpellier'],
"N": ['Northia', 'Nova Argentia', 'Novartis', 'Novartis - Sando',
  'Novo Nordisk', 'Novoplos'],
"O": ['Omega'],
"P": ['Panalab', 'Pfizer', 'PharmaDorf', 'Pharmanove', 'Pharmatrix',
  'Pierre Fabre Med', 'Poen'],
"Q": ['Química Luar'],
"R": ['Raffo', 'Raymos', 'Richet', 'Richmond', 'Roche Diabetes', 'Roemmers',
  'Ronnet', 'Rontag', 'Rospaw', 'Rossmore Pharma'],
"S": ['Sanitas', 'Sanofi Pasteur', 'Sanofi-Aventis', 'Sanofi-Aventis O',
  'Savant Consumer', 'Savant Pharma', 'Savant Vitarum', 'Servier',
  'Sidus', 'Sidus - Lifescan', 'Soubeiran Chobet', 'Spedrog Caillon',
  'Szama'],
"T": ['Takeda', 'Techsphere', 'Temis-Lostaló', 'Teva argentina',
  'Trb-Pharma'],
"V": ['Valmax', 'Vannier', 'Vannier - Grunen'],
"W": ['Wunder Pharm']
}
df = pd.DataFrame.from_dict(diccionario, orient='index')
# print(df)
for indice_fila, fila in df.iterrows():
print(indice_fila)
print(fila)

La salida es la siguiente:
A
0 AbbotT Diabetes
1  Abbott EPD
2   Alcon
3Allergan-Loa
4   Amgen
5   Andrómaco
6 Ariston
7 Aspen Argentina
8 AstraZeneca
9   Atlas
10Austral
11   None
12   None
13   None
14   None
15   None
Name: A, dtype: object
B
0   BD
1 Bagó
2 Baliarda
3   Bayer (PH)
4   Bayer Consumer
5 Beta
6   Betterlife SRL
7 Biol
8 Biopas Argentina
9 Bioprofarma Bagó
10  Biosidus Farma
11   Biosintex
12Biosintex Retail
13Biotechno Pharma
14 Biotenk
15Boehringer Ingel
Name: B, dtype: object

Les comparto solo un fragmento ya que es bastante extensa la salida,
pero mi pregunta es la siguiente, por qué en la letra A, completa los
espacios con None y no corta en Austral que es el último? En otras
letras pasa lo mismo, para completar pone None, hay alguna forma de
evitar eso?. Perdón por lo estúpido de la pregunta, desde ya muchas
gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] isin()

2020-08-05 Por tema Lemarchand Barker
Buenísimo Ricardo, gracias ya lo anoto.
Si lo de numpy y el array algo de eso vi muy por arriba, por ahora quiero
familiarizarme con algunas cosas de momento.
Gracias, saludos

El mié., 5 ago. 2020 a las 17:23, Ricardo Cárdenes (<
ricardo.carde...@gmail.com>) escribió:

> Por cierto, añado: observa que limité los criterios a columnas concretas.
> Eso tiene perfecto sentido aquí porque cada columna tiene una semántica
> diferente. Sin embargo, nada te impide aplicar isin a un DataFrame
> entero. El problema es que el resultado puede no tener mucho sentido (o sí,
> depende):
>
> >>> mask = df2.isin(['382.24', '617.12'])
> >>> mask
>  lab   pami
> 19 False  False
> 629False   True
> 23549  False  False
> 30087  False   True
>
>
> Obviamente, todas las entradas de la columna "lab" salen falsos. ¿Qué
> sucede si usas esto como máscara?
>
> >>> df2[mask]
>labpami
> 19 NaN NaN
> 629NaN  382.24
> 23549  NaN NaN
> 30087  NaN  617.12
>
>
> Dado que no puedes discriminar filas enteras, la máscara no sabe lo que
> estás queriendo hacer. Y por tanto va a mostrarte *todo*, pero poniendo
> valores NaN ("not a number") en las celdas falsas.
>
> Por cierto, que la máscara no tiene por qué ser un DataSet. Puede ser por
> ejemplo una simple lista, que se aplica al primer eje (filas, en este caso):
>
> >>> df2[[False, True, False, True]]
>  labpami
> 629Alcon  382.24
> 30087  Fabra  617.12
>
>
> Y dado que Pandas se apoya en NumPy, imagino que puedes pasar un array de
> NumPy también.
>
>
> On Wed, Aug 5, 2020 at 10:12 AM Ricardo Cárdenes <
> ricardo.carde...@gmail.com> wrote:
>
>> Aparte de lo que te está contestando Darío (error en la entrada: 627.12
>> en lugar de 617.12), a tu otra pregunta...
>>
>> - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra
>>> valores booleanos, en realidad no se que estaría chequeando
>>
>>
>> isin te devuelve *siempre* un DataFrame de booleanos, siendo True las
>> celdas donde hay coincidencia con alguno de los valores que pasaste a
>> isin. Así pues, ninguna sorpresa. Ese dataframe de booleanos lo puedes
>> utilizar como una *máscara* para filtrar los valores de otro DataFrame.
>> Eso es lo que haces en tu ejemplo anterior:
>>
>> *print(df2[df2['pami'].isin(['382.24', '627.12'])])*
>>
>>
>>  Observa que estás usando df2['pami'].isin(['382.24', '627.12']) como
>> índice del propio df2. En este caso, tu máscara está discriminando
>> algunas filas: el resultado de df2[mascara] será un nuevo DataFrame que
>> mostrará (normalmente esto se hace con una clase proxy que actúa como
>> "vista") sólo esas filas.
>>
>> En tu segundo ejemplo no estás aplicando la máscara: la estás imprimiendo
>> directamente y por tanto sólo ves los booleanos.
>>
>> Curiosidad: las máscaras se pueden combinar usando operaciones booleanas
>> normales. Por ejemplo, combinando criterios sobre diferentes columnas:
>>
>> >>> l = df2['lab'].isin(['Alcon'])
>> >>> p = df2['pami'].isin(['382.24', '617.12'])
>> >>> l
>> 19   False
>> 629  False
>> 23549 True
>> 30087False
>> Name: lab, dtype: bool
>> >>> p
>> 19   False
>> 629   True
>> 23549False
>> 30087 True
>> Name: pami, dtype: bool
>> >>> l & p# AND lógico -> todas False porque no coincide nada
>> 19   False
>> 629  False
>> 23549False
>> 30087False
>> dtype: bool
>> >>> l | p# OR lógico -> combina las filas True de ambas
>> 19   False
>> 629   True
>> 23549 True
>> 30087 True
>> dtype: bool
>> >>> df2[l | p]# DataFrame con las filas que cumplen AL MENOS uno de
>> los dos criterios
>>   labpami
>> 629 Alcon  382.24
>> 23549  Duncan  245.44
>> 30087   Fabra  617.12
>> >>> df2[l & p]# DataFrame con las filas que cumplen AMBOS criterios
>> (está vacío, claro)
>> Empty DataFrame
>> Columns: [lab, pami]
>> Index: []
>>
>>
>> Saludos,
>> Ricardo
>>
>> On Wed, Aug 5, 2020 at 9:06 AM Lemarchand Barker <
>> lemarchand8...@gmail.com> wrote:
>>
>>> Hola siguiendo con la lectura de pandas, estoy probando isin() y no me
>>> queda muy en claro bien que función cumple y qué tipo de uso le podría dar.
>>> Mi ejemplo es el siguiente:
>>>
>>> leer = pd.read_csv('democsv.csv')
>>> df = pd.DataFrame({
>>> 'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'],
>>> 'pami': ['490.13', '382.24', '245.44', '617.12'],},
>>> index=['19', '629', '23549', '30087'])
>>> df2 = df.copy()
>>>
>>> df2['pami'] = ['490.13', '382.24', '245.44', '617.12']
>>> *print(df2['pami'])*
>>>
>>> Salida:
>>> 19   490.13
>>> 629  382.24
>>> 23549245.44
>>> 30087617.12
>>> Name: pami, dtype: object
>>>
>>>
>>> *print(df2[df2['pami'].isin(['382.24', '627.12'])])*
>>>
>>> - En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12
>>> y solo muestra 1, qué estoy haciendo mal?
>>>
>>> Salida:
>>>labpami
>>> 629  Alcon  382.24
>>>
>>>
>>> *print(df2.isin({'pami': [1, 3]}))*
>>>
>>> - Acá paso también 

Re: [Python-es] [Consulta] isin()

2020-08-05 Por tema Ricardo Cárdenes
Por cierto, añado: observa que limité los criterios a columnas concretas.
Eso tiene perfecto sentido aquí porque cada columna tiene una semántica
diferente. Sin embargo, nada te impide aplicar isin a un DataFrame entero.
El problema es que el resultado puede no tener mucho sentido (o sí,
depende):

>>> mask = df2.isin(['382.24', '617.12'])
>>> mask
 lab   pami
19 False  False
629False   True
23549  False  False
30087  False   True


Obviamente, todas las entradas de la columna "lab" salen falsos. ¿Qué
sucede si usas esto como máscara?

>>> df2[mask]
   labpami
19 NaN NaN
629NaN  382.24
23549  NaN NaN
30087  NaN  617.12


Dado que no puedes discriminar filas enteras, la máscara no sabe lo que
estás queriendo hacer. Y por tanto va a mostrarte *todo*, pero poniendo
valores NaN ("not a number") en las celdas falsas.

Por cierto, que la máscara no tiene por qué ser un DataSet. Puede ser por
ejemplo una simple lista, que se aplica al primer eje (filas, en este caso):

>>> df2[[False, True, False, True]]
 labpami
629Alcon  382.24
30087  Fabra  617.12


Y dado que Pandas se apoya en NumPy, imagino que puedes pasar un array de
NumPy también.


On Wed, Aug 5, 2020 at 10:12 AM Ricardo Cárdenes 
wrote:

> Aparte de lo que te está contestando Darío (error en la entrada: 627.12 en
> lugar de 617.12), a tu otra pregunta...
>
> - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores
>> booleanos, en realidad no se que estaría chequeando
>
>
> isin te devuelve *siempre* un DataFrame de booleanos, siendo True las
> celdas donde hay coincidencia con alguno de los valores que pasaste a isin.
> Así pues, ninguna sorpresa. Ese dataframe de booleanos lo puedes utilizar
> como una *máscara* para filtrar los valores de otro DataFrame. Eso es lo
> que haces en tu ejemplo anterior:
>
> *print(df2[df2['pami'].isin(['382.24', '627.12'])])*
>
>
>  Observa que estás usando df2['pami'].isin(['382.24', '627.12']) como
> índice del propio df2. En este caso, tu máscara está discriminando
> algunas filas: el resultado de df2[mascara] será un nuevo DataFrame que
> mostrará (normalmente esto se hace con una clase proxy que actúa como
> "vista") sólo esas filas.
>
> En tu segundo ejemplo no estás aplicando la máscara: la estás imprimiendo
> directamente y por tanto sólo ves los booleanos.
>
> Curiosidad: las máscaras se pueden combinar usando operaciones booleanas
> normales. Por ejemplo, combinando criterios sobre diferentes columnas:
>
> >>> l = df2['lab'].isin(['Alcon'])
> >>> p = df2['pami'].isin(['382.24', '617.12'])
> >>> l
> 19   False
> 629  False
> 23549 True
> 30087False
> Name: lab, dtype: bool
> >>> p
> 19   False
> 629   True
> 23549False
> 30087 True
> Name: pami, dtype: bool
> >>> l & p# AND lógico -> todas False porque no coincide nada
> 19   False
> 629  False
> 23549False
> 30087False
> dtype: bool
> >>> l | p# OR lógico -> combina las filas True de ambas
> 19   False
> 629   True
> 23549 True
> 30087 True
> dtype: bool
> >>> df2[l | p]# DataFrame con las filas que cumplen AL MENOS uno de
> los dos criterios
>   labpami
> 629 Alcon  382.24
> 23549  Duncan  245.44
> 30087   Fabra  617.12
> >>> df2[l & p]# DataFrame con las filas que cumplen AMBOS criterios
> (está vacío, claro)
> Empty DataFrame
> Columns: [lab, pami]
> Index: []
>
>
> Saludos,
> Ricardo
>
> On Wed, Aug 5, 2020 at 9:06 AM Lemarchand Barker 
> wrote:
>
>> Hola siguiendo con la lectura de pandas, estoy probando isin() y no me
>> queda muy en claro bien que función cumple y qué tipo de uso le podría dar.
>> Mi ejemplo es el siguiente:
>>
>> leer = pd.read_csv('democsv.csv')
>> df = pd.DataFrame({
>> 'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'],
>> 'pami': ['490.13', '382.24', '245.44', '617.12'],},
>> index=['19', '629', '23549', '30087'])
>> df2 = df.copy()
>>
>> df2['pami'] = ['490.13', '382.24', '245.44', '617.12']
>> *print(df2['pami'])*
>>
>> Salida:
>> 19   490.13
>> 629  382.24
>> 23549245.44
>> 30087617.12
>> Name: pami, dtype: object
>>
>>
>> *print(df2[df2['pami'].isin(['382.24', '627.12'])])*
>>
>> - En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12
>> y solo muestra 1, qué estoy haciendo mal?
>>
>> Salida:
>>labpami
>> 629  Alcon  382.24
>>
>>
>> *print(df2.isin({'pami': [1, 3]}))*
>>
>> - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra
>> valores booleanos, en realidad no se que estaría chequeando
>>
>> Salida:
>>   lab   pami
>> 19False  False
>> 629  False  False
>> 23549  False  False
>> 30087  False  False
>>
>> Muchas gracias, saludos
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
>
___
Python-es mailing list

Re: [Python-es] [Consulta] isin()

2020-08-05 Por tema Ricardo Cárdenes
Aparte de lo que te está contestando Darío (error en la entrada: 627.12 en
lugar de 617.12), a tu otra pregunta...

- Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores
> booleanos, en realidad no se que estaría chequeando


isin te devuelve *siempre* un DataFrame de booleanos, siendo True las
celdas donde hay coincidencia con alguno de los valores que pasaste a isin.
Así pues, ninguna sorpresa. Ese dataframe de booleanos lo puedes utilizar
como una *máscara* para filtrar los valores de otro DataFrame. Eso es lo
que haces en tu ejemplo anterior:

*print(df2[df2['pami'].isin(['382.24', '627.12'])])*


 Observa que estás usando df2['pami'].isin(['382.24', '627.12']) como
índice del propio df2. En este caso, tu máscara está discriminando algunas
filas: el resultado de df2[mascara] será un nuevo DataFrame que mostrará
(normalmente esto se hace con una clase proxy que actúa como "vista") sólo
esas filas.

En tu segundo ejemplo no estás aplicando la máscara: la estás imprimiendo
directamente y por tanto sólo ves los booleanos.

Curiosidad: las máscaras se pueden combinar usando operaciones booleanas
normales. Por ejemplo, combinando criterios sobre diferentes columnas:

>>> l = df2['lab'].isin(['Alcon'])
>>> p = df2['pami'].isin(['382.24', '617.12'])
>>> l
19   False
629  False
23549 True
30087False
Name: lab, dtype: bool
>>> p
19   False
629   True
23549False
30087 True
Name: pami, dtype: bool
>>> l & p# AND lógico -> todas False porque no coincide nada
19   False
629  False
23549False
30087False
dtype: bool
>>> l | p# OR lógico -> combina las filas True de ambas
19   False
629   True
23549 True
30087 True
dtype: bool
>>> df2[l | p]# DataFrame con las filas que cumplen AL MENOS uno de los
dos criterios
  labpami
629 Alcon  382.24
23549  Duncan  245.44
30087   Fabra  617.12
>>> df2[l & p]# DataFrame con las filas que cumplen AMBOS criterios
(está vacío, claro)
Empty DataFrame
Columns: [lab, pami]
Index: []


Saludos,
Ricardo

On Wed, Aug 5, 2020 at 9:06 AM Lemarchand Barker 
wrote:

> Hola siguiendo con la lectura de pandas, estoy probando isin() y no me
> queda muy en claro bien que función cumple y qué tipo de uso le podría dar.
> Mi ejemplo es el siguiente:
>
> leer = pd.read_csv('democsv.csv')
> df = pd.DataFrame({
> 'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'],
> 'pami': ['490.13', '382.24', '245.44', '617.12'],},
> index=['19', '629', '23549', '30087'])
> df2 = df.copy()
>
> df2['pami'] = ['490.13', '382.24', '245.44', '617.12']
> *print(df2['pami'])*
>
> Salida:
> 19   490.13
> 629  382.24
> 23549245.44
> 30087617.12
> Name: pami, dtype: object
>
>
> *print(df2[df2['pami'].isin(['382.24', '627.12'])])*
>
> - En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12 y
> solo muestra 1, qué estoy haciendo mal?
>
> Salida:
>labpami
> 629  Alcon  382.24
>
>
> *print(df2.isin({'pami': [1, 3]}))*
>
> - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores
> booleanos, en realidad no se que estaría chequeando
>
> Salida:
>   lab   pami
> 19False  False
> 629  False  False
> 23549  False  False
> 30087  False  False
>
> Muchas gracias, saludos
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] isin()

2020-08-05 Por tema lemarchand8679

Pero que .da, gracias.Igual sigo sin comprender mucho su 
uso.SaludosEnviado desde mi smartphone Samsung Galaxy.
 Mensaje original De: Darío vía Python-es 
 Fecha: 5/8/20  16:49  (GMT-03:00) A: La lista de python 
en castellano  CC: Darío  
Asunto: Re: [Python-es] [Consulta] isin() Hola, fijate que en lugar de 617.12 
ponés 627.12 para ver si está. Lo cual está funcionando bien. Hay un error de 
tipeo.-Sent with ProtonMail Secure Email.‐‐‐ Original Message ‐‐‐ On 
Wednesday, 5 de August de 2020 16:06, Lemarchand Barker 
 wrote: Hola siguiendo con la lectura de pandas, 
estoy probando isin() y no me queda muy en claro bien que función cumple y qué 
tipo de uso le podría dar.Mi ejemplo es el siguiente:leer = 
pd.read_csv('democsv.csv')df = pd.DataFrame({    'lab': ['Abbott Diabetes', 
'Alcon', 'Duncan', 'Fabra'],    'pami': ['490.13', '382.24', '245.44', 
'617.12'],},    index=['19', '629', '23549', '30087'])df2 = 
df.copy()df2['pami'] = ['490.13', '382.24', '245.44', 
'617.12']print(df2['pami'])Salida:19       490.13629      382.2423549    
245.4430087    617.12Name: pami, dtype: 
objectprint(df2[df2['pami'].isin(['382.24', '627.12'])])- En esta salida tengo 
un inconveniente, paso 2 valores: 382.24 y 627.12 y solo muestra 1, qué estoy 
haciendo mal?Salida:           lab    pami629  Alcon  
382.24print(df2.isin({'pami': [1, 3]}))- Acá paso también 2 valores: 1 y 3, no 
entiendo porque me muestra valores booleanos, en realidad no se que estaría 
chequeandoSalida:  lab   pami19        False  False629      False  
False23549  False  False30087  False  FalseMuchas gracias, saludos___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] isin()

2020-08-05 Por tema Darío vía Python-es
Hola, fijate que en lugar de 617.12 ponés 627.12 para ver si está. Lo cual está 
funcionando bien. Hay un error de tipeo.

-

Sent with [ProtonMail](https://protonmail.com) Secure Email.

‐‐‐ Original Message ‐‐‐
On Wednesday, 5 de August de 2020 16:06, Lemarchand Barker 
 wrote:

> Hola siguiendo con la lectura de pandas, estoy probando isin() y no me queda 
> muy en claro bien que función cumple y qué tipo de uso le podría dar.
> Mi ejemplo es el siguiente:
>
> leer = pd.read_csv('democsv.csv')
> df = pd.DataFrame({
> 'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'],
> 'pami': ['490.13', '382.24', '245.44', '617.12'],},
> index=['19', '629', '23549', '30087'])
> df2 = df.copy()
>
> df2['pami'] = ['490.13', '382.24', '245.44', '617.12']
> print(df2['pami'])
>
> Salida:
> 19 490.13
> 629 382.24
> 23549 245.44
> 30087 617.12
> Name: pami, dtype: object
>
> print(df2[df2['pami'].isin(['382.24', '627.12'])])
>
> - En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12 y 
> solo muestra 1, qué estoy haciendo mal?
>
> Salida:
> lab pami
> 629 Alcon 382.24
>
> print(df2.isin({'pami': [1, 3]}))
>
> - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores 
> booleanos, en realidad no se que estaría chequeando
>
> Salida:
> lab pami
> 19 False False
> 629 False False
> 23549 False False
> 30087 False False
>
> Muchas gracias, saludos___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] isin()

2020-08-05 Por tema Lemarchand Barker
Hola siguiendo con la lectura de pandas, estoy probando isin() y no me
queda muy en claro bien que función cumple y qué tipo de uso le podría dar.
Mi ejemplo es el siguiente:

leer = pd.read_csv('democsv.csv')
df = pd.DataFrame({
'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'],
'pami': ['490.13', '382.24', '245.44', '617.12'],},
index=['19', '629', '23549', '30087'])
df2 = df.copy()

df2['pami'] = ['490.13', '382.24', '245.44', '617.12']
*print(df2['pami'])*

Salida:
19   490.13
629  382.24
23549245.44
30087617.12
Name: pami, dtype: object


*print(df2[df2['pami'].isin(['382.24', '627.12'])])*

- En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12 y
solo muestra 1, qué estoy haciendo mal?

Salida:
   labpami
629  Alcon  382.24


*print(df2.isin({'pami': [1, 3]}))*

- Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores
booleanos, en realidad no se que estaría chequeando

Salida:
  lab   pami
19False  False
629  False  False
23549  False  False
30087  False  False

Muchas gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] describe()

2020-08-04 Por tema Lemarchand Barker
Perfecto, muchas gracias

El mar., 4 ago. 2020 a las 17:48, Darío vía Python-es ()
escribió:

> Son valores estadísticos de la muestra, indica los pirncipales (la media,
> máximo, mínimo, desvío estándar, etc.). Es útil si necesitás un pantallazo
> de la muestra, una especie de resumen estadístico.
> Pero para manejarlos en el conjunto de datos es mejor usar las funciones
> por separado, y hacer ciclos, operaciones y demás cosas.
>
> -
>
> Sent with ProtonMail  Secure Email.
>
> ‐‐‐ Original Message ‐‐‐
> On Tuesday, 4 de August de 2020 17:06, Lemarchand Barker <
> lemarchand8...@gmail.com> wrote:
>
> Hola, estoy leyendo sobre pandas y no me queda muy en claro qué función
> cumple describe().
>
> Tengo la siguiente línea:
>
> import pandas as pd
> leer = pd.read_csv('democsv.csv')
> print(leer.describe())
>
> Y la salida es la siguiente:
>
> /usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/testcsv.py
>ALFABETA  PVP_PAMI   COBERTURA  IMPORTE_AFILIADO
> count 39.00 39.00   39.00 39.00
> mean   20989.615385   1661.154103   57.179487781.984615
> std18690.580373   3736.403181   15.719368   1884.191785
> min   19.00 20.16   50.00  0.00
> 25%  989.50362.245000   50.00115.04
> 50%23543.00580.65   50.00228.75
> 75%30090.00   1075.375000   55.00537.69
> max56081.00  19721.76  100.00   9860.88
>
> Por lo que leí genera estadísticas descriptivas?
> Complemento el libro con este link:
>
> https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html
> Por ejemplo en qué caso haría uso de describe y con qué propósito?
> Muchas gracias, saludos
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] describe()

2020-08-04 Por tema Darío vía Python-es
Son valores estadísticos de la muestra, indica los pirncipales (la media, 
máximo, mínimo, desvío estándar, etc.). Es útil si necesitás un pantallazo de 
la muestra, una especie de resumen estadístico.
Pero para manejarlos en el conjunto de datos es mejor usar las funciones por 
separado, y hacer ciclos, operaciones y demás cosas.

-

Sent with [ProtonMail](https://protonmail.com) Secure Email.

‐‐‐ Original Message ‐‐‐
On Tuesday, 4 de August de 2020 17:06, Lemarchand Barker 
 wrote:

> Hola, estoy leyendo sobre pandas y no me queda muy en claro qué función 
> cumple describe().
>
> Tengo la siguiente línea:
>
> import pandas as pd
> leer = pd.read_csv('democsv.csv')
> print(leer.describe())
>
> Y la salida es la siguiente:
>
> /usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/testcsv.py
> ALFABETA PVP_PAMI COBERTURA IMPORTE_AFILIADO
> count 39.00 39.00 39.00 39.00
> mean 20989.615385 1661.154103 57.179487 781.984615
> std 18690.580373 3736.403181 15.719368 1884.191785
> min 19.00 20.16 50.00 0.00
> 25% 989.50 362.245000 50.00 115.04
> 50% 23543.00 580.65 50.00 228.75
> 75% 30090.00 1075.375000 55.00 537.69
> max 56081.00 19721.76 100.00 9860.88
>
> Por lo que leí genera estadísticas descriptivas?
> Complemento el libro con este link:
> https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html
> Por ejemplo en qué caso haría uso de describe y con qué propósito?
> Muchas gracias, saludos___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] describe()

2020-08-04 Por tema Lemarchand Barker
Hola, estoy leyendo sobre pandas y no me queda muy en claro qué función
cumple describe().

Tengo la siguiente línea:

import pandas as pd
leer = pd.read_csv('democsv.csv')
print(leer.describe())

Y la salida es la siguiente:

/usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/testcsv.py
   ALFABETA  PVP_PAMI   COBERTURA  IMPORTE_AFILIADO
count 39.00 39.00   39.00 39.00
mean   20989.615385   1661.154103   57.179487781.984615
std18690.580373   3736.403181   15.719368   1884.191785
min   19.00 20.16   50.00  0.00
25%  989.50362.245000   50.00115.04
50%23543.00580.65   50.00228.75
75%30090.00   1075.375000   55.00537.69
max56081.00  19721.76  100.00   9860.88

Por lo que leí genera estadísticas descriptivas?
Complemento el libro con este link:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html
Por ejemplo en qué caso haría uso de describe y con qué propósito?
Muchas gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


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

2020-08-04 Por tema Lemarchand Barker
Hola, estoy practicando asi que estoy haciendo unos ejemplos con head() y
otras cosas simples hasta que me anime a hacer cosas un poquito más
"complejas".
Muchas gracias, saludos

El mar., 4 ago. 2020 a las 12:56, David Suárez vía Python-es (<
python-es@python.org>) escribió:

> 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 (
> lemarchand8...@gmail.com) escribió:
>
>> Buenos días, dale ahí voy.
>> A ver si se puede acceder: gavade.csv
>> 
>> Gracias, saludos
>>
>> El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (<
>> python-es@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 (
>>> lemarchand8...@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
 
 Muchas gracias


 El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (<
 python-es@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 (
> lemarchand8...@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
>> () 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 <
>> lemarchand8...@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 

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

2020-08-04 Por tema David Suárez vía Python-es
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 (
lemarchand8...@gmail.com) escribió:

> Buenos días, dale ahí voy.
> A ver si se puede acceder: gavade.csv
> 
> Gracias, saludos
>
> El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (<
> python-es@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 (
>> lemarchand8...@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
>>> 
>>> Muchas gracias
>>>
>>>
>>> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (<
>>> python-es@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 (
 lemarchand8...@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
> () 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 <
> lemarchand8...@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 

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

2020-08-04 Por tema Lemarchand Barker
Listo, ahora si.
Desde este link se puede acceder: gavade.csv

Muchas gracias, saludos

El mar., 4 ago. 2020 a las 9:26, Ricardo Cárdenes (<
ricardo.carde...@gmail.com>) escribió:

> Erm... El enlace no sirve.
>
> Mira, ve a Drive, haz click derecho en el fichero que quieres compartir y
> busca, según el idioma que tengas configurado, una de estas dos cosas:
>
>
>- Get shareable link
>- Obtener enlace
>
> O similar. Te debería aparecer una ventana donde se te proporciona un
> enlace nuevo, que se usará para que otros puedan acceder a tu contenido,
> pero sólo a eso y sólo siguiendo ese enlace.
>
> On Tue, Aug 4, 2020 at 2:22 AM Lemarchand Barker 
> wrote:
>
>> Buenos días, dale ahí voy.
>> A ver si se puede acceder: gavade.csv
>> 
>> Gracias, saludos
>>
>> El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (<
>> python-es@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 (
>>> lemarchand8...@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
 
 Muchas gracias


 El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (<
 python-es@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 (
> lemarchand8...@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
>> () 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 <
>> lemarchand8...@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))
>> > >

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

2020-08-04 Por tema Ricardo Cárdenes
Erm... El enlace no sirve.

Mira, ve a Drive, haz click derecho en el fichero que quieres compartir y
busca, según el idioma que tengas configurado, una de estas dos cosas:


   - Get shareable link
   - Obtener enlace

O similar. Te debería aparecer una ventana donde se te proporciona un
enlace nuevo, que se usará para que otros puedan acceder a tu contenido,
pero sólo a eso y sólo siguiendo ese enlace.

On Tue, Aug 4, 2020 at 2:22 AM Lemarchand Barker 
wrote:

> Buenos días, dale ahí voy.
> A ver si se puede acceder: gavade.csv
> 
> Gracias, saludos
>
> El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (<
> python-es@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 (
>> lemarchand8...@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
>>> 
>>> Muchas gracias
>>>
>>>
>>> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (<
>>> python-es@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 (
 lemarchand8...@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
> () 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 <
> lemarchand8...@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 

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

2020-08-04 Por tema Lemarchand Barker
Buenos días, dale ahí voy.
A ver si se puede acceder: gavade.csv

Gracias, saludos

El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (<
python-es@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 (
> lemarchand8...@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
>> 
>> Muchas gracias
>>
>>
>> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (<
>> python-es@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 (
>>> lemarchand8...@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
 () 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 <
 lemarchand8...@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@python.org
 > > https://mail.python.org/mailman/listinfo/python-es
 >
 >
 > ___
 > Python-es mailing list
 > Python-es@python.org
 > https://mail.python.org/mailman/listinfo/python-es
 ___
 Python-es mailing list
 Python-es@python.org
 https://mail.python.org/mailman/listinfo/python-es

>>> 

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

2020-08-03 Por tema David Suárez vía Python-es
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 (
lemarchand8...@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
> 
> Muchas gracias
>
>
> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (<
> python-es@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 (
>> lemarchand8...@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
>>> () 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 <
>>> lemarchand8...@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@python.org
>>> > > https://mail.python.org/mailman/listinfo/python-es
>>> >
>>> >
>>> > ___
>>> > Python-es mailing list
>>> > Python-es@python.org
>>> > https://mail.python.org/mailman/listinfo/python-es
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list

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

2020-08-03 Por tema Lemarchand Barker
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

Muchas gracias


El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (<
python-es@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 (
> lemarchand8...@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
>> () 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 <
>> lemarchand8...@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@python.org
>> > > https://mail.python.org/mailman/listinfo/python-es
>> >
>> >
>> > ___
>> > Python-es mailing list
>> > Python-es@python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


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

2020-08-03 Por tema Lemarchand Barker
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
() 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 
>  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@python.org
> > https://mail.python.org/mailman/listinfo/python-es
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


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

2020-08-03 Por tema Darío vía Python-es
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 
 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@python.org
> https://mail.python.org/mailman/listinfo/python-es


___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


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

2020-08-03 Por tema Ricardo Cárdenes
No podemos tener ni idea de la razón por la que te pasa esto, porque no te
vemos el resto de tus datos. *Aparentemente* *el número de laboratorio va
incluido en el listado*. Ideas que pueden contribuir:

   - Tu listado empieza en "1". Ten en cuenta que los índices de las
   estructuras de Python empiezan en "0". Por tanto, en ese caso, tu "58"
   realmente se referiría a la posición "59" (contando desde 1)
   - Tu listado tiene huecos. Si falta un número en la secuencia de los
   asignados a los laboratorios, combinado con lo anterior, ya explicaría por
   qué obtienes 58 en lugar de 60

Solución: *no uses .index* para esto. Si el número de laboratorio aparece
en el listado, en la misma fila, *captúralo al mismo tiempo que el nombre*.

On Mon, Aug 3, 2020 at 9:02 AM Lemarchand Barker 
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@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


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

2020-08-03 Por tema Mario Lacunza
Prueba con 57

Mario Lacunza
Enviado desde mi celular

El lun., 3 de ago. de 2020 14:03, Lemarchand Barker <
lemarchand8...@gmail.com> escribió:

> 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@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


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

2020-08-03 Por tema Lemarchand Barker
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@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] csv y diccionario

2020-07-24 Por tema Sebastián Arancibia
Entiendo, la verdad no sabía que no programabas, pensé que venías de otro
lenguaje. Que bien que te animes en aprender, además Python es muy versátil
así que lo puedes aplicar en muchas cosas.

Claro, la versatilidad es una de las grandes ventajas del diccionario, y la
verdad es que te había preguntado lo de los lenguajes porque los
diccionarios tienen un simil en otros lenguajes (como por ejemplo en Java
está el Map, no es lo mismo -en lo personal prefiero el diccionario de
Python que el Map de Java- pero es algo similar en cuanto a uso).
Pero ahí la gracia de usar diccionarios es, si tengo varios csv por
ejemplo, cada registro lo podría asociar a un diccionario, y si son varios
csv tener tal vez una lista de varios diccionarios (donde cada diccionario
puede ser una fila con todas las columnas, donde la clave es el nombre de
la columna). Tampoco es la idea ir moviendo el archivo dentro de
estructuras de datos, siempre lo ideal es leer el archivo, cerrarlo, y
trabajar con la información del archivo.

Saludos!

On Fri, Jul 24, 2020 at 5:53 PM Lemarchand Barker 
wrote:

> Hola Sebastián, como es obvio no soy programadora innata pero python
> siempre me atrajo. En mi juventud programé con php y html+css, pero
> nunca me llevé bien con ese lenguaje, me resulta incómodo, no digo que
> sea malo ni nada, yo no me sentía cómoda usándolo. Fue ahí cuando me
> pasé a python 2.7, cuando el 3 estaba empezando. Después por
> cuestiones personales tuve que dejar la programación y siempre lo vi
> como un pendiente, me gusta, claramente me lleva más tiempo aprenderlo
> pero no me doy por vencido aunque solo tenga conocimientos más que
> básicos.
> Preguntaba lo del diccionario porque acá en la lista ya me lo habían
> sugerido y porque en muchos ejemplos que veo y leo también lo usan y
> quería saber si había algún motivo en especial por el cual se lo
> usaba. Y creo que más allá de lo que me dijiste, que todo depende la
> tarea que quiera realizar y la cantidad de datos a analizar pero creo
> que la ventaja principal es la que me dijiste, la versatilidad del
> diccionario. Vi por ejemplo que un diccionario puede almacenar varios
> csv a la vez.
> Muchas gracias, saludos
>
> El vie., 24 jul. 2020 a las 18:28, Sebastián Arancibia
> () escribió:
> >
> > Primero, creo pertinente aclarar conceptos. Sería bueno que nos dijeras
> en que otros lenguajes te manejas o tienes experiencia para hacer un símil.
> >
> > Python tiene 4 tipos de estructuras de datos. Listas, conjuntos (sets),
> tuplas y diccionarios. Las listas son, como dice su nombre, un listado de
> objetos (que pueden ser enteros, strings, otras listas, etc) y que permiten
> operaciones entre si. Los conjuntos son similar con la diferencia que el
> conjunto no acepta elementos repetidos, y de que aceptan operaciones
> típicas de conjuntos como unión, intercepción o diferencia. Las tuplas son
> similares a las listas, con la diferencia de que son inmutables (o sea, no
> puedes cambiarlas una vez creadas). Y, finalmente, tenemos los
> diccionarios, que son una estructura que guarda pares de clave-valor, y que
> también pueden almacenar como valor cualquier tipo de dato (otros
> diccionarios, listas, etc).
> >
> > Hice la salvedad de diferenciar las estructuras de dato, porque, como
> siempre, esto incide en la decisión de qué usar, y eso simplemente lo ves
> dependiendo de lo que necesites. Para algunos casos conviene listados, para
> otros conjuntos, para otros tuplas y para otros diccionarios. Es cierto que
> tal vez un cierto problema lo puedes enfocar de varias formas pero ahí el
> rendimiento entra en juego. No es lo mismo procesar unos cientos datos que
> millones de datos... y un desarrollo bien optimizado en Python hace
> muchísimo la diferencia en rendimiento. Esto se nota sobre todo si después
> despliegas tus desarrollos (ya sea en la nube, en un servidor, etc).
> >
> > Ahora, ¿por qué los diccionarios son muy buenos? Pues porque es una
> estructura de dato muy versátil, te permite buscar por keys, anidar
> objetos, filtrar, etc. Además es muy similar a operar un JSON (sin serlo),
> entonces es mucho más natural a la hora de trabajar datos versus una
> lista/tupla. Esto es muy útil si trabajas haciendo microservicios en Python
> por ejemplo, ya que te hace sencillísimo mapear inputs/outputs y
> trabajarlos. Es importante si la aclaración de que no es lo mismo que JSON,
> hay muchas personas que he conocido que piensan erróneamente esto último
> cuando recién se están introduciendo en Python y después se frustran cuando
> notan que sus desarrollos no devuelven respuestas esperadas (o en el
> formato esperado).
> >
> > Ahora, si quieres ver rendimiento o complejidad algorítmica, este link (
> https://www.pythonlikeyoumeanit.com/Module2_EssentialsOfPython/DataStructures.html)
> puede darte más luces. Ojo, repito que no es que una estructura de datos
> sea mejor que otra, depende mucho de la necesidad, caso de uso o
> requerimiento en específico.
> >
> > Saludos.

Re: [Python-es] [Consulta] csv y diccionario

2020-07-24 Por tema Lemarchand Barker
Hola Sebastián, como es obvio no soy programadora innata pero python
siempre me atrajo. En mi juventud programé con php y html+css, pero
nunca me llevé bien con ese lenguaje, me resulta incómodo, no digo que
sea malo ni nada, yo no me sentía cómoda usándolo. Fue ahí cuando me
pasé a python 2.7, cuando el 3 estaba empezando. Después por
cuestiones personales tuve que dejar la programación y siempre lo vi
como un pendiente, me gusta, claramente me lleva más tiempo aprenderlo
pero no me doy por vencido aunque solo tenga conocimientos más que
básicos.
Preguntaba lo del diccionario porque acá en la lista ya me lo habían
sugerido y porque en muchos ejemplos que veo y leo también lo usan y
quería saber si había algún motivo en especial por el cual se lo
usaba. Y creo que más allá de lo que me dijiste, que todo depende la
tarea que quiera realizar y la cantidad de datos a analizar pero creo
que la ventaja principal es la que me dijiste, la versatilidad del
diccionario. Vi por ejemplo que un diccionario puede almacenar varios
csv a la vez.
Muchas gracias, saludos

El vie., 24 jul. 2020 a las 18:28, Sebastián Arancibia
() escribió:
>
> Primero, creo pertinente aclarar conceptos. Sería bueno que nos dijeras en 
> que otros lenguajes te manejas o tienes experiencia para hacer un símil.
>
> Python tiene 4 tipos de estructuras de datos. Listas, conjuntos (sets), 
> tuplas y diccionarios. Las listas son, como dice su nombre, un listado de 
> objetos (que pueden ser enteros, strings, otras listas, etc) y que permiten 
> operaciones entre si. Los conjuntos son similar con la diferencia que el 
> conjunto no acepta elementos repetidos, y de que aceptan operaciones típicas 
> de conjuntos como unión, intercepción o diferencia. Las tuplas son similares 
> a las listas, con la diferencia de que son inmutables (o sea, no puedes 
> cambiarlas una vez creadas). Y, finalmente, tenemos los diccionarios, que son 
> una estructura que guarda pares de clave-valor, y que también pueden 
> almacenar como valor cualquier tipo de dato (otros diccionarios, listas, etc).
>
> Hice la salvedad de diferenciar las estructuras de dato, porque, como 
> siempre, esto incide en la decisión de qué usar, y eso simplemente lo ves 
> dependiendo de lo que necesites. Para algunos casos conviene listados, para 
> otros conjuntos, para otros tuplas y para otros diccionarios. Es cierto que 
> tal vez un cierto problema lo puedes enfocar de varias formas pero ahí el 
> rendimiento entra en juego. No es lo mismo procesar unos cientos datos que 
> millones de datos... y un desarrollo bien optimizado en Python hace muchísimo 
> la diferencia en rendimiento. Esto se nota sobre todo si después despliegas 
> tus desarrollos (ya sea en la nube, en un servidor, etc).
>
> Ahora, ¿por qué los diccionarios son muy buenos? Pues porque es una 
> estructura de dato muy versátil, te permite buscar por keys, anidar objetos, 
> filtrar, etc. Además es muy similar a operar un JSON (sin serlo), entonces es 
> mucho más natural a la hora de trabajar datos versus una lista/tupla. Esto es 
> muy útil si trabajas haciendo microservicios en Python por ejemplo, ya que te 
> hace sencillísimo mapear inputs/outputs y trabajarlos. Es importante si la 
> aclaración de que no es lo mismo que JSON, hay muchas personas que he 
> conocido que piensan erróneamente esto último cuando recién se están 
> introduciendo en Python y después se frustran cuando notan que sus 
> desarrollos no devuelven respuestas esperadas (o en el formato esperado).
>
> Ahora, si quieres ver rendimiento o complejidad algorítmica, este link 
> (https://www.pythonlikeyoumeanit.com/Module2_EssentialsOfPython/DataStructures.html)
>  puede darte más luces. Ojo, repito que no es que una estructura de datos sea 
> mejor que otra, depende mucho de la necesidad, caso de uso o requerimiento en 
> específico.
>
> Saludos.
>
> On Fri, Jul 24, 2020 at 2:46 PM Lemarchand Barker  
> wrote:
>>
>> Hola, esta vez les pregunto como bien me habían comentado antes, a la
>> hora de trabajar con un archivo csv que use diccionario. Pero hay
>> algún motivo en particular o en especial por el cuál se hace esto? Es
>> por cuestión de rendimiento a nivel sistema o porque ofrece una forma
>> más fácil de trabajar y manipular la información?
>> Por lo que leí es mejor usar el diccionario en vez de manejar la una
>> lista individual de cadenas. Lo entiendo pero hay algún plus o algo
>> que favorezca el uso del diccionario?
>> Gracias, saludos
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] csv y diccionario

2020-07-24 Por tema Sebastián Arancibia
Primero, creo pertinente aclarar conceptos. Sería bueno que nos dijeras en
que otros lenguajes te manejas o tienes experiencia para hacer un símil.

Python tiene 4 tipos de estructuras de datos. Listas, conjuntos (sets),
tuplas y diccionarios. Las listas son, como dice su nombre, un listado de
objetos (que pueden ser enteros, strings, otras listas, etc) y que permiten
operaciones entre si. Los conjuntos son similar con la diferencia que el
conjunto no acepta elementos repetidos, y de que aceptan operaciones
típicas de conjuntos como unión, intercepción o diferencia. Las tuplas son
similares a las listas, con la diferencia de que son *inmutables* (o sea,
no puedes cambiarlas una vez creadas). Y, finalmente, tenemos los
diccionarios, que son una estructura que guarda pares de clave-valor, y que
también pueden almacenar como valor cualquier tipo de dato (otros
diccionarios, listas, etc).

Hice la salvedad de diferenciar las estructuras de dato, porque, como
siempre, esto incide en la decisión de qué usar, y eso simplemente lo ves
dependiendo de lo que necesites. Para algunos casos conviene listados, para
otros conjuntos, para otros tuplas y para otros diccionarios. Es cierto que
tal vez un cierto problema lo puedes enfocar de varias formas pero ahí el
rendimiento entra en juego. No es lo mismo procesar unos cientos datos que
millones de datos... y un desarrollo bien optimizado en Python hace
muchísimo la diferencia en rendimiento. Esto se nota sobre todo si después
despliegas tus desarrollos (ya sea en la nube, en un servidor, etc).

Ahora, ¿por qué los diccionarios son muy buenos? Pues porque es una
estructura de dato muy versátil, te permite buscar por keys, anidar
objetos, filtrar, etc. Además es muy similar a operar un JSON (sin serlo),
entonces es mucho más natural a la hora de trabajar datos versus una
lista/tupla. Esto es muy útil si trabajas haciendo microservicios en Python
por ejemplo, ya que te hace sencillísimo mapear inputs/outputs y
trabajarlos. Es importante si la aclaración de que *no es lo mismo que JSON*,
hay muchas personas que he conocido que piensan erróneamente esto último
cuando recién se están introduciendo en Python y después se frustran cuando
notan que sus desarrollos no devuelven respuestas esperadas (o en el
formato esperado).

Ahora, si quieres ver rendimiento o complejidad algorítmica, este link (
https://www.pythonlikeyoumeanit.com/Module2_EssentialsOfPython/DataStructures.html)
puede darte más luces. Ojo, repito que no es que una estructura de datos
sea mejor que otra, depende mucho de la necesidad, caso de uso o
requerimiento en específico.

Saludos.

On Fri, Jul 24, 2020 at 2:46 PM Lemarchand Barker 
wrote:

> Hola, esta vez les pregunto como bien me habían comentado antes, a la
> hora de trabajar con un archivo csv que use diccionario. Pero hay
> algún motivo en particular o en especial por el cuál se hace esto? Es
> por cuestión de rendimiento a nivel sistema o porque ofrece una forma
> más fácil de trabajar y manipular la información?
> Por lo que leí es mejor usar el diccionario en vez de manejar la una
> lista individual de cadenas. Lo entiendo pero hay algún plus o algo
> que favorezca el uso del diccionario?
> Gracias, saludos
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] csv y diccionario

2020-07-24 Por tema Lemarchand Barker
Hola, esta vez les pregunto como bien me habían comentado antes, a la
hora de trabajar con un archivo csv que use diccionario. Pero hay
algún motivo en particular o en especial por el cuál se hace esto? Es
por cuestión de rendimiento a nivel sistema o porque ofrece una forma
más fácil de trabajar y manipular la información?
Por lo que leí es mejor usar el diccionario en vez de manejar la una
lista individual de cadenas. Lo entiendo pero hay algún plus o algo
que favorezca el uso del diccionario?
Gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Caracter raro en .csv

2020-07-22 Por tema lemarchand8679
Hola, hice lo del LibreOffice, fuí probando distintos encodings. Salvo que 
vuelva a ponerlo en utf-8 desde el LibreO, y vuelva a poner el PyCharm en utf-8 
e intentar buscar de nuevo.Con la configuración actual tuve que añadir al 
principio:#!/usr/bin/python# -*- coding: latin-1 -*-Voy a intentar lo que 
dijiste, a ver que pasa.GraciasEnviado desde mi smartphone Samsung Galaxy.
 Mensaje original De: Ricardo Cárdenes 
 Fecha: 22/7/20  16:15  (GMT-03:00) A: La lista de 
python en castellano  Asunto: Re: [Python-es] [Consulta] 
Caracter raro en .csv Atiende a lo que dijo lasizoillo: la configuración que 
has cambiado ahí sólo se refiere a la codificación de los ficheros ".py" en sí. 
Nada más. Fíjate que está bajo la configuración de "editor". No afecta en nada 
a lo que leen o escriben tus programas.Para facilitarte la vida, yo haría lo 
que comentó tu colega: ve a LibreOffice, lee el archivo CSV y vuelve a 
escribirlo, pero cambiando la codificación. Estar haciendo "copy paste" es 
ineficiente.On Wed, Jul 22, 2020 at 4:19 AM Lemarchand Barker 
 wrote:Buenas, les cuento que solucioné el problema. 
Lo solucioné cambiando
la configuración de PyCharm, quiero adjuntar la foto para que vean, si
es posible.
Resulta que en la parte de Settings del ide, cargué el csv que estoy
usando y me muestra que usa codificación iso como bien me dijeron
anteriormente; y el problema asumo se generaba porque el ide por
default está en utf-8 y es por eso que creo que por más que yo le haya
pasado el parámetro de: encoding='ISO-8859-1' no me servía de mucho.
Cuestión que en la parte de configuración del ide, cargo el archivo
.csv y paso todo a iso. Ejecuto de nuevo el programa y seguía sin
darme el resultado que necesitaba. Pasaba lo siguiente:
Yo buscaba así:

Ingrese nombre del laboratorio: Bagó
El laboratorio Bagó no figura en lista.

Hasta que por fin pensé y lo busqué de la siguiente forma:

Ingrese nombre del laboratorio: Andr?maco
El laboratorio Andr?maco aparece en lista 52 veces

Hice un copy-paste del nombre del laboratorio, lo copié del csv y lo
pegué en ide cuando me pide que ingrese el nombre y funcionó.
Ahora lo que tengo que hacer es afinar la búsqueda y acá es donde es
muy seguro que los vuelva a molestar en breve.
Gracias 1000 a todos por la paciencia

El mié., 22 jul. 2020 a las 6:59, lasizoillo () escribió:
>
>
>
> El mié., 22 jul. 2020 a las 0:01, Darío vía Python-es 
> () escribió:
>>
>>
>> Estaba hablando con un compañero y me acaba de decir lo mismo.
>> Ahora, lo ideal es que se use el utf o latin? Cuál es más aconsejable?
>> Gracias
>>
>>
>> Hola, uso utf-8 porque tengo entendido que si usás Windows debe ser latin 
>> (al menos eso me pasaba al compilar archvos .tex). Habitualmente pongo
>>
>> # -*- coding: utf-8 -*-
>>
>> al inicio del guión.
>>
>>
>
> Con eso estás informando al intérprete cuál es la codificación del fichero 
> python (tu código fuente) y para nada estás especificando la codificación de 
> caracteres con la que te comunicas con el mundo exterior. Con eso afectas a 
> la codificación de cadenas unicode en tu código. Unos ejemplos estrambóticos 
> para ilustrarlo en python2 (sacados de una charla del 2011):
>
> Ejemplo 1:
> # -*- coding: rot13 -*-
> cevag h"fnyhqbf qrfqr rfcn�n"
>
> Ejemplo 2:
> # -*- coding: rot13 -*-
> cevag "hola mundo desde españa"
>
> La forma correcta es la comentada por ricardo: open(nombre_del_fichero, 
> encoding='latin-1')
>
> En cuanto a si es mejor latin-1 o utf-8 depende. Con latin-1 todos los 
> caracteres ocupan un byte por lo que el uso de memoria es más predecible
> y se puede usar algoritmos como el boyer-moore en la representación binaria 
> del texto. Con utf-8 tienes una representación mayormente compacta
> pero capaz de representar klingon, kanji, cirílico y caracteres de casi 
> cualquier otra lengua. Personalmente prefiero utf-8 y tener muy claro
> que cadenas de bytes y de texto son cosas completamente diferentes aunque 
> haya formas de convertir unas en otras: por la red o a la consola de
> texto o... transmites bytes e internamente trabajas con cadenas de texto. 
> Cualquier comunicación dentro/fuera o fuera/dentro requiere definir
> una codificación de caracteres (la que sea) y hacer la conversión correcta.
>
> Un saludo,
>
> Javi
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Caracter raro en .csv

2020-07-22 Por tema Ricardo Cárdenes
Atiende a lo que dijo lasizoillo: la configuración que has cambiado ahí
sólo se refiere a la codificación de los ficheros ".py" en sí. Nada más.
Fíjate que está bajo la configuración de "editor". No afecta en nada a lo
que leen o escriben tus programas.

Para facilitarte la vida, yo haría lo que comentó tu colega: ve a
LibreOffice, lee el archivo CSV y vuelve a escribirlo, pero cambiando la
codificación. Estar haciendo "copy paste" es ineficiente.

On Wed, Jul 22, 2020 at 4:19 AM Lemarchand Barker 
wrote:

> Buenas, les cuento que solucioné el problema. Lo solucioné cambiando
> la configuración de PyCharm, quiero adjuntar la foto para que vean, si
> es posible.
> Resulta que en la parte de Settings del ide, cargué el csv que estoy
> usando y me muestra que usa codificación iso como bien me dijeron
> anteriormente; y el problema asumo se generaba porque el ide por
> default está en utf-8 y es por eso que creo que por más que yo le haya
> pasado el parámetro de: encoding='ISO-8859-1' no me servía de mucho.
> Cuestión que en la parte de configuración del ide, cargo el archivo
> .csv y paso todo a iso. Ejecuto de nuevo el programa y seguía sin
> darme el resultado que necesitaba. Pasaba lo siguiente:
> Yo buscaba así:
>
> Ingrese nombre del laboratorio: Bagó
> El laboratorio Bagó no figura en lista.
>
> Hasta que por fin pensé y lo busqué de la siguiente forma:
>
> Ingrese nombre del laboratorio: Andr?maco
> El laboratorio Andr?maco aparece en lista 52 veces
>
> Hice un copy-paste del nombre del laboratorio, lo copié del csv y lo
> pegué en ide cuando me pide que ingrese el nombre y funcionó.
> Ahora lo que tengo que hacer es afinar la búsqueda y acá es donde es
> muy seguro que los vuelva a molestar en breve.
> Gracias 1000 a todos por la paciencia
>
> El mié., 22 jul. 2020 a las 6:59, lasizoillo ()
> escribió:
> >
> >
> >
> > El mié., 22 jul. 2020 a las 0:01, Darío vía Python-es (<
> python-es@python.org>) escribió:
> >>
> >>
> >> Estaba hablando con un compañero y me acaba de decir lo mismo.
> >> Ahora, lo ideal es que se use el utf o latin? Cuál es más aconsejable?
> >> Gracias
> >>
> >>
> >> Hola, uso utf-8 porque tengo entendido que si usás Windows debe ser
> latin (al menos eso me pasaba al compilar archvos .tex). Habitualmente pongo
> >>
> >> # -*- coding: utf-8 -*-
> >>
> >> al inicio del guión.
> >>
> >>
> >
> > Con eso estás informando al intérprete cuál es la codificación del
> fichero python (tu código fuente) y para nada estás especificando la
> codificación de caracteres con la que te comunicas con el mundo exterior.
> Con eso afectas a la codificación de cadenas unicode en tu código. Unos
> ejemplos estrambóticos para ilustrarlo en python2 (sacados de una charla
> del 2011):
> >
> > Ejemplo 1:
> > # -*- coding: rot13 -*-
> > cevag h"fnyhqbf qrfqr rfcn�n"
> >
> > Ejemplo 2:
> > # -*- coding: rot13 -*-
> > cevag "hola mundo desde españa"
> >
> > La forma correcta es la comentada por ricardo: open(nombre_del_fichero,
> encoding='latin-1')
> >
> > En cuanto a si es mejor latin-1 o utf-8 depende. Con latin-1 todos los
> caracteres ocupan un byte por lo que el uso de memoria es más predecible
> > y se puede usar algoritmos como el boyer-moore en la representación
> binaria del texto. Con utf-8 tienes una representación mayormente compacta
> > pero capaz de representar klingon, kanji, cirílico y caracteres de casi
> cualquier otra lengua. Personalmente prefiero utf-8 y tener muy claro
> > que cadenas de bytes y de texto son cosas completamente diferentes
> aunque haya formas de convertir unas en otras: por la red o a la consola de
> > texto o... transmites bytes e internamente trabajas con cadenas de
> texto. Cualquier comunicación dentro/fuera o fuera/dentro requiere definir
> > una codificación de caracteres (la que sea) y hacer la conversión
> correcta.
> >
> > Un saludo,
> >
> > Javi
> > ___
> > Python-es mailing list
> > Python-es@python.org
> > https://mail.python.org/mailman/listinfo/python-es
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Caracter raro en .csv

2020-07-22 Por tema Lemarchand Barker
Buenas, les cuento que solucioné el problema. Lo solucioné cambiando
la configuración de PyCharm, quiero adjuntar la foto para que vean, si
es posible.
Resulta que en la parte de Settings del ide, cargué el csv que estoy
usando y me muestra que usa codificación iso como bien me dijeron
anteriormente; y el problema asumo se generaba porque el ide por
default está en utf-8 y es por eso que creo que por más que yo le haya
pasado el parámetro de: encoding='ISO-8859-1' no me servía de mucho.
Cuestión que en la parte de configuración del ide, cargo el archivo
.csv y paso todo a iso. Ejecuto de nuevo el programa y seguía sin
darme el resultado que necesitaba. Pasaba lo siguiente:
Yo buscaba así:

Ingrese nombre del laboratorio: Bagó
El laboratorio Bagó no figura en lista.

Hasta que por fin pensé y lo busqué de la siguiente forma:

Ingrese nombre del laboratorio: Andr?maco
El laboratorio Andr?maco aparece en lista 52 veces

Hice un copy-paste del nombre del laboratorio, lo copié del csv y lo
pegué en ide cuando me pide que ingrese el nombre y funcionó.
Ahora lo que tengo que hacer es afinar la búsqueda y acá es donde es
muy seguro que los vuelva a molestar en breve.
Gracias 1000 a todos por la paciencia

El mié., 22 jul. 2020 a las 6:59, lasizoillo () escribió:
>
>
>
> El mié., 22 jul. 2020 a las 0:01, Darío vía Python-es 
> () escribió:
>>
>>
>> Estaba hablando con un compañero y me acaba de decir lo mismo.
>> Ahora, lo ideal es que se use el utf o latin? Cuál es más aconsejable?
>> Gracias
>>
>>
>> Hola, uso utf-8 porque tengo entendido que si usás Windows debe ser latin 
>> (al menos eso me pasaba al compilar archvos .tex). Habitualmente pongo
>>
>> # -*- coding: utf-8 -*-
>>
>> al inicio del guión.
>>
>>
>
> Con eso estás informando al intérprete cuál es la codificación del fichero 
> python (tu código fuente) y para nada estás especificando la codificación de 
> caracteres con la que te comunicas con el mundo exterior. Con eso afectas a 
> la codificación de cadenas unicode en tu código. Unos ejemplos estrambóticos 
> para ilustrarlo en python2 (sacados de una charla del 2011):
>
> Ejemplo 1:
> # -*- coding: rot13 -*-
> cevag h"fnyhqbf qrfqr rfcn�n"
>
> Ejemplo 2:
> # -*- coding: rot13 -*-
> cevag "hola mundo desde españa"
>
> La forma correcta es la comentada por ricardo: open(nombre_del_fichero, 
> encoding='latin-1')
>
> En cuanto a si es mejor latin-1 o utf-8 depende. Con latin-1 todos los 
> caracteres ocupan un byte por lo que el uso de memoria es más predecible
> y se puede usar algoritmos como el boyer-moore en la representación binaria 
> del texto. Con utf-8 tienes una representación mayormente compacta
> pero capaz de representar klingon, kanji, cirílico y caracteres de casi 
> cualquier otra lengua. Personalmente prefiero utf-8 y tener muy claro
> que cadenas de bytes y de texto son cosas completamente diferentes aunque 
> haya formas de convertir unas en otras: por la red o a la consola de
> texto o... transmites bytes e internamente trabajas con cadenas de texto. 
> Cualquier comunicación dentro/fuera o fuera/dentro requiere definir
> una codificación de caracteres (la que sea) y hacer la conversión correcta.
>
> Un saludo,
>
> Javi
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Caracter raro en .csv

2020-07-22 Por tema lasizoillo
El mié., 22 jul. 2020 a las 0:01, Darío vía Python-es ()
escribió:

>
> Estaba hablando con un compañero y me acaba de decir lo mismo.
> Ahora, lo ideal es que se use el utf o latin? Cuál es más aconsejable?
> Gracias
>
>
> Hola, uso utf-8 porque tengo entendido que si usás Windows debe ser latin
> (al menos eso me pasaba al compilar archvos .tex). Habitualmente pongo
>
> # -*- coding: utf-8 -*-
>
> al inicio del guión.
>
>
Con eso estás informando al intérprete cuál es la codificación del fichero
python (tu código fuente) y para nada estás especificando la codificación
de caracteres con la que te comunicas con el mundo exterior. Con eso
afectas a la codificación de cadenas unicode en tu código. Unos ejemplos
estrambóticos para ilustrarlo en python2 (sacados de una charla del 2011):

Ejemplo 1:
# -*- coding: rot13 -*-
cevag h"fnyhqbf qrfqr rfcn�n"

Ejemplo 2:
# -*- coding: rot13 -*-
cevag "hola mundo desde españa"

La forma correcta es la comentada por ricardo: open(nombre_del_fichero,
encoding='latin-1')

En cuanto a si es mejor latin-1 o utf-8 depende. Con latin-1 todos los
caracteres ocupan un byte por lo que el uso de memoria es más predecible
y se puede usar algoritmos como el boyer-moore en la representación binaria
del texto. Con utf-8 tienes una representación mayormente compacta
pero capaz de representar klingon, kanji, cirílico y caracteres de casi
cualquier otra lengua. Personalmente prefiero utf-8 y tener muy claro
que cadenas de bytes y de texto son cosas completamente diferentes aunque
haya formas de convertir unas en otras: por la red o a la consola de
texto o... transmites bytes e internamente trabajas con cadenas de texto.
Cualquier comunicación dentro/fuera o fuera/dentro requiere definir
una codificación de caracteres (la que sea) y hacer la conversión correcta.

Un saludo,

Javi
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Caracter raro en .csv

2020-07-21 Por tema Ricardo Cárdenes
Ten en cuenta que va a dar igual la codificación del fichero: una vez lo
leas (si lo haces correctamente), lo más probable es que Python vaya a
representarlo internamente de otra manera. De hecho, en Python 3 todas las
cadenas son unicode.

Pero claro, si conviertes el fichero antes de ser leído, te ahorras tener
que añadir código que tenga que lidiar con diferentes tipos.

On Tue, Jul 21, 2020 at 12:21 PM Lemarchand Barker 
wrote:

> Entonces supongo que el archivo lo generaron usando win, mi compañero
> me dijo prácticamente lo mismo que Ricardo, que sea latin.
> Me dijo que con Libreoffice; que es lo que uso; que lo puedo ir
> cambiando la opción "conjunto de caracteres" hasta que no haya
> caracteres raros.
> Gracias :)
>
> El mar., 21 jul. 2020 a las 19:02, Darío vía Python-es
> () escribió:
> >
> >
> > Estaba hablando con un compañero y me acaba de decir lo mismo.
> > Ahora, lo ideal es que se use el utf o latin? Cuál es más aconsejable?
> > Gracias
> >
> >
> > Hola, uso utf-8 porque tengo entendido que si usás Windows debe ser
> latin (al menos eso me pasaba al compilar archvos .tex). Habitualmente pongo
> >
> > # -*- coding: utf-8 -*-
> >
> > al inicio del guión.
> >
> >
> >
> >
> >
> > Enviado desde mi smartphone Samsung Galaxy.
> >
> >
> > ---- Mensaje original 
> > De: Ricardo Cárdenes 
> > Fecha: 21/7/20 18:42 (GMT-03:00)
> > A: La lista de python en castellano 
> > Asunto: Re: [Python-es] [Consulta] Caracter raro en .csv
> >
> > El problema es que estás leyendo el fichero asumiendo una cierta
> codificación (casi seguramente UTF-8, por defecto), mientras que el fichero
> realmente contiene otra (probablemente "latin-1").
> >
> > Ambas codificaciones coinciden sólo en caracteres con valor ASCII < 128.
> >
> > Prueba a abrir el fichero así: open(nombre_del_fichero,
> encoding='latin-1')
> >
> > On Tue, Jul 21, 2020 at 11:37 AM Lemarchand Barker <
> lemarchand8...@gmail.com> wrote:
> >>
> >> Hola, otra vez les molesto para consultar lo siguiente. Leo el archivo
> >> perfecto, estoy viendo cuántas veces aparece un mismo laboratorio.
> >> Pero el tema es el siguiente, adjunto img. Como se puede ver, se ve el
> >> caracter que reemplaza una letra, el laboratorio se llama Andrómaco
> >> (chileno), si lo busco tal cual me figura que no está en lista:
> >>
> >> /usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/pami.py
> >> Ingrese nombre del laboratorio: Andrómaco
> >> El laboratorio Andrómaco no figura en lista.
> >>
> >> Si lo busco sin acento, el resultado es el mismo, también pensé en
> >> buscar por partes, es decir que en lugar de que busque por el nombre
> >> completo: Andrómaco que busque por las 3 primeras letras: And. Esto
> >> todavía no lo hice porque esa parte la quiero practicar después. Ahora
> >> la duda es la siguiente, hay alguna forma de buscar por el nombre
> >> completo del laboratorio; tal cual lo estoy haciendo; y tratar de
> >> solucionar el Andr�maco?
> >>
> >> Muchas gracias, saludos
> >> ___
> >> Python-es mailing list
> >> Python-es@python.org
> >> https://mail.python.org/mailman/listinfo/python-es
> >
> >
> > ___
> > Python-es mailing list
> > Python-es@python.org
> > https://mail.python.org/mailman/listinfo/python-es
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Caracter raro en .csv

2020-07-21 Por tema Lemarchand Barker
Entonces supongo que el archivo lo generaron usando win, mi compañero
me dijo prácticamente lo mismo que Ricardo, que sea latin.
Me dijo que con Libreoffice; que es lo que uso; que lo puedo ir
cambiando la opción "conjunto de caracteres" hasta que no haya
caracteres raros.
Gracias :)

El mar., 21 jul. 2020 a las 19:02, Darío vía Python-es
() escribió:
>
>
> Estaba hablando con un compañero y me acaba de decir lo mismo.
> Ahora, lo ideal es que se use el utf o latin? Cuál es más aconsejable?
> Gracias
>
>
> Hola, uso utf-8 porque tengo entendido que si usás Windows debe ser latin (al 
> menos eso me pasaba al compilar archvos .tex). Habitualmente pongo
>
> # -*- coding: utf-8 -*-
>
> al inicio del guión.
>
>
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>
>  Mensaje original 
> De: Ricardo Cárdenes 
> Fecha: 21/7/20 18:42 (GMT-03:00)
> A: La lista de python en castellano 
> Asunto: Re: [Python-es] [Consulta] Caracter raro en .csv
>
> El problema es que estás leyendo el fichero asumiendo una cierta codificación 
> (casi seguramente UTF-8, por defecto), mientras que el fichero realmente 
> contiene otra (probablemente "latin-1").
>
> Ambas codificaciones coinciden sólo en caracteres con valor ASCII < 128.
>
> Prueba a abrir el fichero así: open(nombre_del_fichero, encoding='latin-1')
>
> On Tue, Jul 21, 2020 at 11:37 AM Lemarchand Barker  
> wrote:
>>
>> Hola, otra vez les molesto para consultar lo siguiente. Leo el archivo
>> perfecto, estoy viendo cuántas veces aparece un mismo laboratorio.
>> Pero el tema es el siguiente, adjunto img. Como se puede ver, se ve el
>> caracter que reemplaza una letra, el laboratorio se llama Andrómaco
>> (chileno), si lo busco tal cual me figura que no está en lista:
>>
>> /usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/pami.py
>> Ingrese nombre del laboratorio: Andrómaco
>> El laboratorio Andrómaco no figura en lista.
>>
>> Si lo busco sin acento, el resultado es el mismo, también pensé en
>> buscar por partes, es decir que en lugar de que busque por el nombre
>> completo: Andrómaco que busque por las 3 primeras letras: And. Esto
>> todavía no lo hice porque esa parte la quiero practicar después. Ahora
>> la duda es la siguiente, hay alguna forma de buscar por el nombre
>> completo del laboratorio; tal cual lo estoy haciendo; y tratar de
>> solucionar el Andr�maco?
>>
>> Muchas gracias, saludos
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Caracter raro en .csv

2020-07-21 Por tema Darío vía Python-es
> Estaba hablando con un compañero y me acaba de decir lo mismo.
> Ahora, lo ideal es que se use el utf o latin? Cuál es más aconsejable?
> Gracias

Hola, uso utf-8 porque tengo entendido que si usás Windows debe ser latin (al 
menos eso me pasaba al compilar archvos .tex). Habitualmente pongo

# -*- coding: utf-8 -*-

al inicio del guión.

> Enviado desde mi smartphone Samsung Galaxy.
>
>  Mensaje original 
> De: Ricardo Cárdenes 
> Fecha: 21/7/20 18:42 (GMT-03:00)
> A: La lista de python en castellano 
> Asunto: Re: [Python-es] [Consulta] Caracter raro en .csv
>
> El problema es que estás leyendo el fichero asumiendo una cierta codificación 
> (casi seguramente UTF-8, por defecto), mientras que el fichero realmente 
> contiene otra (probablemente "latin-1").
>
> Ambas codificaciones coinciden sólo en caracteres con valor ASCII < 128.
>
> Prueba a abrir el fichero así: open(nombre_del_fichero, encoding='latin-1')
>
> On Tue, Jul 21, 2020 at 11:37 AM Lemarchand Barker  
> wrote:
>
>> Hola, otra vez les molesto para consultar lo siguiente. Leo el archivo
>> perfecto, estoy viendo cuántas veces aparece un mismo laboratorio.
>> Pero el tema es el siguiente, adjunto img. Como se puede ver, se ve el
>> caracter que reemplaza una letra, el laboratorio se llama Andrómaco
>> (chileno), si lo busco tal cual me figura que no está en lista:
>>
>> /usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/pami.py
>> Ingrese nombre del laboratorio: Andrómaco
>> El laboratorio Andrómaco no figura en lista.
>>
>> Si lo busco sin acento, el resultado es el mismo, también pensé en
>> buscar por partes, es decir que en lugar de que busque por el nombre
>> completo: Andrómaco que busque por las 3 primeras letras: And. Esto
>> todavía no lo hice porque esa parte la quiero practicar después. Ahora
>> la duda es la siguiente, hay alguna forma de buscar por el nombre
>> completo del laboratorio; tal cual lo estoy haciendo; y tratar de
>> solucionar el Andr�maco?
>>
>> Muchas gracias, saludos
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Caracter raro en .csv

2020-07-21 Por tema lemarchand8679
Estaba hablando con un compañero y me acaba de decir lo mismo.Ahora, lo ideal 
es que se use el utf o latin? Cuál es más aconsejable?GraciasEnviado desde mi 
smartphone Samsung Galaxy.
 Mensaje original De: Ricardo Cárdenes 
 Fecha: 21/7/20  18:42  (GMT-03:00) A: La lista de 
python en castellano  Asunto: Re: [Python-es] [Consulta] 
Caracter raro en .csv El problema es que estás leyendo el fichero asumiendo una 
cierta codificación (casi seguramente UTF-8, por defecto), mientras que el 
fichero realmente contiene otra (probablemente "latin-1").Ambas codificaciones 
coinciden sólo en caracteres con valor ASCII < 128.Prueba a abrir el fichero 
así: open(nombre_del_fichero, encoding='latin-1')On Tue, Jul 21, 2020 at 11:37 
AM Lemarchand Barker  wrote:Hola, otra vez les 
molesto para consultar lo siguiente. Leo el archivo
perfecto, estoy viendo cuántas veces aparece un mismo laboratorio.
Pero el tema es el siguiente, adjunto img. Como se puede ver, se ve el
caracter que reemplaza una letra, el laboratorio se llama Andrómaco
(chileno), si lo busco tal cual me figura que no está en lista:

/usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/pami.py
Ingrese nombre del laboratorio: Andrómaco
El laboratorio Andrómaco no figura en lista.

Si lo busco sin acento, el resultado es el mismo, también pensé en
buscar por partes, es decir que en lugar de que busque por el nombre
completo: Andrómaco que busque por las 3 primeras letras: And. Esto
todavía no lo hice porque esa parte la quiero practicar después. Ahora
la duda es la siguiente, hay alguna forma de buscar por el nombre
completo del laboratorio; tal cual lo estoy haciendo; y tratar de
solucionar el Andr�maco?

Muchas gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Caracter raro en .csv

2020-07-21 Por tema Ricardo Cárdenes
El problema es que estás leyendo el fichero asumiendo una cierta
codificación (casi seguramente UTF-8, por defecto), mientras que el fichero
realmente contiene otra (probablemente "latin-1").

Ambas codificaciones coinciden sólo en caracteres con valor ASCII < 128.

Prueba a abrir el fichero así: open(nombre_del_fichero, encoding='latin-1')

On Tue, Jul 21, 2020 at 11:37 AM Lemarchand Barker 
wrote:

> Hola, otra vez les molesto para consultar lo siguiente. Leo el archivo
> perfecto, estoy viendo cuántas veces aparece un mismo laboratorio.
> Pero el tema es el siguiente, adjunto img. Como se puede ver, se ve el
> caracter que reemplaza una letra, el laboratorio se llama Andrómaco
> (chileno), si lo busco tal cual me figura que no está en lista:
>
> /usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/pami.py
> Ingrese nombre del laboratorio: Andrómaco
> El laboratorio Andrómaco no figura en lista.
>
> Si lo busco sin acento, el resultado es el mismo, también pensé en
> buscar por partes, es decir que en lugar de que busque por el nombre
> completo: Andrómaco que busque por las 3 primeras letras: And. Esto
> todavía no lo hice porque esa parte la quiero practicar después. Ahora
> la duda es la siguiente, hay alguna forma de buscar por el nombre
> completo del laboratorio; tal cual lo estoy haciendo; y tratar de
> solucionar el Andr�maco?
>
> Muchas gracias, saludos
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] Caracter raro en .csv

2020-07-21 Por tema Lemarchand Barker
Hola, otra vez les molesto para consultar lo siguiente. Leo el archivo
perfecto, estoy viendo cuántas veces aparece un mismo laboratorio.
Pero el tema es el siguiente, adjunto img. Como se puede ver, se ve el
caracter que reemplaza una letra, el laboratorio se llama Andrómaco
(chileno), si lo busco tal cual me figura que no está en lista:

/usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/pami.py
Ingrese nombre del laboratorio: Andrómaco
El laboratorio Andrómaco no figura en lista.

Si lo busco sin acento, el resultado es el mismo, también pensé en
buscar por partes, es decir que en lugar de que busque por el nombre
completo: Andrómaco que busque por las 3 primeras letras: And. Esto
todavía no lo hice porque esa parte la quiero practicar después. Ahora
la duda es la siguiente, hay alguna forma de buscar por el nombre
completo del laboratorio; tal cual lo estoy haciendo; y tratar de
solucionar el Andr�maco?

Muchas gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema lemarchand8679
De lujo, ahora lo voy a probar, muchas graciasEnviado desde mi smartphone 
Samsung Galaxy.
 Mensaje original De: Ricardo Cárdenes 
 Fecha: 20/7/20  18:41  (GMT-03:00) A: La lista de 
python en castellano  Asunto: Re: [Python-es] [Consulta] 
Ordenar elementos de una lista Bueno, entonces puedes seguir las indicaciones 
que te dejé para ese caso concreto (o algo similar).On Mon, Jul 20, 2020 at 
11:19 AM Lemarchand Barker  wrote:Lo del diccionario 
es algo que lo pensé, tendría que darle más forma a eso.
A ver quiero hacer lo siguiente:

lugar = input("Ingrese el nombre del país: ")
Ingresa: Argentina

Entonces en vez de mostrar las 29 veces que aparece el país que
muestre sólo una vez, porque en este caso no me interesa ver los datos
almacenados y correspondientes al país, sino sólo saber si está o no y
acá me gustaría enganchar con el diccionario o no se si tiene sentido.
Es decir, primero saber si el país se encuentra y si está, entonces
después veo de buscar cuál es su código correspondiente y a partir de
eso armar si es posible un diccionario.
Espero que ahora si se haya entendido bien, sólo necesito saber si
está el país, si ingreso Finlandia, saber si está o no y así con el
resto de países.
Gracias, saludos

El lun., 20 jul. 2020 a las 18:09, Ricardo Cárdenes
() escribió:
>
> De nuevo, depende de lo que quieras mostrar, de forma más detallada. Dices:
>
> Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que no 
> lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese país 
> que ingresé está almacenado en el csv
>
>
> Tendrías que clarificar lo que estás imprimiendo. Por ejemplo:
>
> ¿Sólo quieres saber si se incluyen datos del país en cuestión, pero no 
> imprimirlos? ¡Bueno, entonces no los imprimas! Imprime sólo "sí, está", o 
> cualquier otra cosa que tú quieras. Sólo una vez. Entiendo que estás iterando 
> sobre la lista de datos e imprimiendo "Argentina" cada vez que aparece el 
> código. En lugar de eso, podrías detener la búsqueda (con un break, 
> probablemente) cuando encuentres la primera coincidencia.
> ¿Quieres mostrar los datos, pero no repetir el código en cada fila? ¡No lo 
> hagas! Muestra sólo las columnas que te interesan.
>
> Para la primera, por ejemplo, podrías incluso mantener una lista separada (o 
> casi mejor, un set) con los códigos de los países que aparecen. Entonces 
> comprobar si el país está incluido o no es trivial.
>
> O podrías combinar ambos puntos: usar un diccionario, indizado por el código 
> del país, cuyos valores fueran listas de los datos de los respectivos países 
> (un par valor-lista para cada código de país). Y como el dato del país ya 
> está en el índice, no tienes que repetirlo en los datos almacenados. Eso te 
> permitiría tener acceso inmediato a los datos exclusivos a un país.
>
> Claro que esto último sólo es útil si todas tus búsquedas van indizadas por 
> país.
>
> No sé, como te digo, nos vas dando información poquito a poquito de lo que 
> quieres hacer y eso deja demasiadas cosas abiertas.
>
> On Mon, Jul 20, 2020 at 10:07 AM lemarchand8679  
> wrote:
>>
>> Gracias Ricardi, ahí voy.
>> Argentina y la mayoría de los lugares se repite 29 veces (filas). Cada fila 
>> contiene información distinta, por lo que no hay datos repetidos.
>> Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que no 
>> lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese 
>> país que ingresé está almacenado en el csv. No quiero modificar, borrar o 
>> añadir algo, sólo saber si un país está o no en la lista y en caso de que 
>> así sea, que lo muestre pero no todas las veces que se repite.
>> Espero haberme explicado mejor, gracias
>>
>>
>>
>> Enviado desde mi smartphone Samsung Galaxy.
>>
>>
>>  Mensaje original 
>> De: Ricardo Cárdenes 
>> Fecha: 20/7/20 16:59 (GMT-03:00)
>> A: La lista de python en castellano 
>> Asunto: Re: [Python-es] [Consulta] Ordenar elementos de una lista
>>
>> No hay una respuesta única. Eso depende de tu problema en concreto.
>>
>> Por ejemplo, dices que el número de área está repetido... ¿Significa eso que 
>> el resto de valores también están repetidos? Es decir, ¿la fila con los 
>> datos de Argentina aparece 29 veces? En ese caso entiendo que lo que quieres 
>> es eliminar duplicados. Eso es trivial: simplemente, mantén algún tipo de 
>> registro de los datos que vas leyendo del CSV (un set almacenando los 
>> códigos es perfecto para esto) y no añadas a la lista las filas que ya 
>> "viste".
>>
>> Si lo que quieres es consolidar datos (cada fila con el mismo código tiene 
>> dato

Re: [Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema Ricardo Cárdenes
Bueno, entonces puedes seguir las indicaciones que te dejé para ese caso
concreto (o algo similar).

On Mon, Jul 20, 2020 at 11:19 AM Lemarchand Barker 
wrote:

> Lo del diccionario es algo que lo pensé, tendría que darle más forma a eso.
> A ver quiero hacer lo siguiente:
>
> lugar = input("Ingrese el nombre del país: ")
> Ingresa: Argentina
>
> Entonces en vez de mostrar las 29 veces que aparece el país que
> muestre sólo una vez, porque en este caso no me interesa ver los datos
> almacenados y correspondientes al país, sino sólo saber si está o no y
> acá me gustaría enganchar con el diccionario o no se si tiene sentido.
> Es decir, primero saber si el país se encuentra y si está, entonces
> después veo de buscar cuál es su código correspondiente y a partir de
> eso armar si es posible un diccionario.
> Espero que ahora si se haya entendido bien, sólo necesito saber si
> está el país, si ingreso Finlandia, saber si está o no y así con el
> resto de países.
> Gracias, saludos
>
> El lun., 20 jul. 2020 a las 18:09, Ricardo Cárdenes
> () escribió:
> >
> > De nuevo, depende de lo que quieras mostrar, de forma más detallada.
> Dices:
> >
> > Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que
> no lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese
> país que ingresé está almacenado en el csv
> >
> >
> > Tendrías que clarificar lo que estás imprimiendo. Por ejemplo:
> >
> > ¿Sólo quieres saber si se incluyen datos del país en cuestión, pero no
> imprimirlos? ¡Bueno, entonces no los imprimas! Imprime sólo "sí, está", o
> cualquier otra cosa que tú quieras. Sólo una vez. Entiendo que estás
> iterando sobre la lista de datos e imprimiendo "Argentina" cada vez que
> aparece el código. En lugar de eso, podrías detener la búsqueda (con un
> break, probablemente) cuando encuentres la primera coincidencia.
> > ¿Quieres mostrar los datos, pero no repetir el código en cada fila? ¡No
> lo hagas! Muestra sólo las columnas que te interesan.
> >
> > Para la primera, por ejemplo, podrías incluso mantener una lista
> separada (o casi mejor, un set) con los códigos de los países que aparecen.
> Entonces comprobar si el país está incluido o no es trivial.
> >
> > O podrías combinar ambos puntos: usar un diccionario, indizado por el
> código del país, cuyos valores fueran listas de los datos de los
> respectivos países (un par valor-lista para cada código de país). Y como el
> dato del país ya está en el índice, no tienes que repetirlo en los datos
> almacenados. Eso te permitiría tener acceso inmediato a los datos
> exclusivos a un país.
> >
> > Claro que esto último sólo es útil si todas tus búsquedas van indizadas
> por país.
> >
> > No sé, como te digo, nos vas dando información poquito a poquito de lo
> que quieres hacer y eso deja demasiadas cosas abiertas.
> >
> > On Mon, Jul 20, 2020 at 10:07 AM lemarchand8679 <
> lemarchand8...@gmail.com> wrote:
> >>
> >> Gracias Ricardi, ahí voy.
> >> Argentina y la mayoría de los lugares se repite 29 veces (filas). Cada
> fila contiene información distinta, por lo que no hay datos repetidos.
> >> Entonces lo que quiero hacer es, ingresar el nombre de un país, pero
> que no lo imprima por pantalla las 29 veces que aparece, sino solo saber si
> ese país que ingresé está almacenado en el csv. No quiero modificar, borrar
> o añadir algo, sólo saber si un país está o no en la lista y en caso de que
> así sea, que lo muestre pero no todas las veces que se repite.
> >> Espero haberme explicado mejor, gracias
> >>
> >>
> >>
> >> Enviado desde mi smartphone Samsung Galaxy.
> >>
> >>
> >>  Mensaje original 
> >> De: Ricardo Cárdenes 
> >> Fecha: 20/7/20 16:59 (GMT-03:00)
> >> A: La lista de python en castellano 
> >> Asunto: Re: [Python-es] [Consulta] Ordenar elementos de una lista
> >>
> >> No hay una respuesta única. Eso depende de tu problema en concreto.
> >>
> >> Por ejemplo, dices que el número de área está repetido... ¿Significa
> eso que el resto de valores también están repetidos? Es decir, ¿la fila con
> los datos de Argentina aparece 29 veces? En ese caso entiendo que lo que
> quieres es eliminar duplicados. Eso es trivial: simplemente, mantén algún
> tipo de registro de los datos que vas leyendo del CSV (un set almacenando
> los códigos es perfecto para esto) y no añadas a la lista las filas que ya
> "viste".
> >>
> >> Si lo que quieres es consolidar datos (cada fila con el mismo código
> tiene datos diferentes, q

Re: [Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema Lemarchand Barker
A ver, acá va:

lugar = input("Ingrese el lugar que desea buscar: ")
cont = 0
for l in lista_datos[1]:
if l == lugar:
cont = cont + 1
if cont == 0:
print(f"La palabra que {lugar} no aparece en la lista.")
elif cont != 0:
print(f"La palabra {lugar} aparece en la lista {cont} veces.")

Esto me da como salida:

/usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/testcsv.py
Ingrese el lugar que desea buscar: Argentina
La palabra Argentina aparece en la lista 29 veces.

El lun., 20 jul. 2020 a las 18:26, Darío vía Python-es
() escribió:
>
> Con el ejemplo que te di antes, podés transformarlo a una lista con .tolist, 
> eso te daría una lista con los países solamente sin las repeticiones, luego 
> con eso se me ocurre que con un for poder recorrer esa lista y el .csv.
>
> Otra que te podría servir es reindexar el csv, para que el índice sea el de 
> los países y ahí ya listas por país.
>
> ¿podrías mostrar alguna salida hecha con el código?
>
>
> -
>
> Sent with ProtonMail Secure Email.
>
> ‐‐‐ Original Message ‐‐‐
> On Monday, 20 de July de 2020 17:51, Lemarchand Barker 
>  wrote:
>
> > Adjunto imágen para que se entienda lo que quiero hacer y si es
> > posible. En la imágen se ve que se repite el nombre 29 veces pero los
> > datos no son repetidos, entonces lo que quiero hacer es, ingresar por
> > ejemplo: Argentina y que se fije en el archivo si está el país, y en
> > caso de que lo esté, que solo muestre el nombre 1 sola vez y no la
> > cantidad de veces que figura en el archivo.
> > Espero ahora si se me entienda mejor.
> > Gracias, saludos
> >
> > El lun., 20 jul. 2020 a las 17:42, Darío vía Python-es
> > (python-es@python.org) escribió:
> >
> > > No entiendo si lo que precisas es que muestre sólo los valores de los 
> > > países pero sin repetición, quizás esto ayude:
> > > archivoCSV[archivoCSV.columns[0]][:].unique()
> > > donde el índice 0 indicaría la columna de países, depende dónde esté 
> > > dicha columna. Por ejemplo si los países son 1, 0, 1, 2, 3, 4, 5:
> > >
> > > > > > print(leer2[leer2.columns[0]][:])
> > >
> > > 0 1
> > > 1 0
> > > 2 1
> > > 3 2
> > > 4 3
> > > 5 4
> > > 6 5
> > > Name: regione, dtype: int64
> > >
> > > > > > print(leer2[leer2.columns[0]][:].unique())
> > >
> > > [1 0 2 3 4 5]
> > >
> > > -
> > >
> > > Sent with ProtonMail Secure Email.
> > > ‐‐‐ Original Message ‐‐‐
> > > On Monday, 20 de July de 2020 17:06, lemarchand8679 
> > > lemarchand8...@gmail.com wrote:
> > > Gracias Ricardi, ahí voy.
> > > Argentina y la mayoría de los lugares se repite 29 veces (filas). Cada 
> > > fila contiene información distinta, por lo que no hay datos repetidos.
> > > Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que 
> > > no lo imprima por pantalla las 29 veces que aparece, sino solo saber si 
> > > ese país que ingresé está almacenado en el csv. No quiero modificar, 
> > > borrar o añadir algo, sólo saber si un país está o no en la lista y en 
> > > caso de que así sea, que lo muestre pero no todas las veces que se repite.
> > > Espero haberme explicado mejor, gracias
> > > Enviado desde mi smartphone Samsung Galaxy.
> > >  Mensaje original 
> > > De: Ricardo Cárdenes ricardo.carde...@gmail.com
> > > Fecha: 20/7/20 16:59 (GMT-03:00)
> > > A: La lista de python en castellano python-es@python.org
> > > Asunto: Re: [Python-es] [Consulta] Ordenar elementos de una lista
> > > No hay una respuesta única. Eso depende de tu problema en concreto.
> > > Por ejemplo, dices que el número de área está repetido... ¿Significa eso 
> > > que el resto de valores también están repetidos? Es decir, ¿la fila con 
> > > los datos de Argentina aparece 29 veces? En ese caso entiendo que lo que 
> > > quieres es eliminar duplicados. Eso es trivial: simplemente, mantén algún 
> > > tipo de registro de los datos que vas leyendo del CSV (un set almacenando 
> > > los códigos es perfecto para esto) y no añadas a la lista las filas que 
> > > ya "viste".
> > > Si lo que quieres es consolidar datos (cada fila con el mismo código 
> > > tiene datos diferentes, que quieres sumar, o hacer media, o...) entonces 
> > > la respuesta va a ser diferente.
> > > Necesitas explicar de forma clara qué es lo que pretendes y entonces se 
> > > te puede dar una respuesta.
> 

Re: [Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema Darío vía Python-es
Con el ejemplo que te di antes, podés transformarlo a una lista con .tolist, 
eso te daría una lista con los países solamente sin las repeticiones, luego con 
eso se me ocurre que con un for poder recorrer esa lista y el .csv.

Otra que te podría servir es reindexar el csv, para que el índice sea el de los 
países y ahí ya listas por país.

¿podrías mostrar alguna salida hecha con el código?


-

Sent with ProtonMail Secure Email.

‐‐‐ Original Message ‐‐‐
On Monday, 20 de July de 2020 17:51, Lemarchand Barker 
 wrote:

> Adjunto imágen para que se entienda lo que quiero hacer y si es
> posible. En la imágen se ve que se repite el nombre 29 veces pero los
> datos no son repetidos, entonces lo que quiero hacer es, ingresar por
> ejemplo: Argentina y que se fije en el archivo si está el país, y en
> caso de que lo esté, que solo muestre el nombre 1 sola vez y no la
> cantidad de veces que figura en el archivo.
> Espero ahora si se me entienda mejor.
> Gracias, saludos
>
> El lun., 20 jul. 2020 a las 17:42, Darío vía Python-es
> (python-es@python.org) escribió:
>
> > No entiendo si lo que precisas es que muestre sólo los valores de los 
> > países pero sin repetición, quizás esto ayude:
> > archivoCSV[archivoCSV.columns[0]][:].unique()
> > donde el índice 0 indicaría la columna de países, depende dónde esté dicha 
> > columna. Por ejemplo si los países son 1, 0, 1, 2, 3, 4, 5:
> >
> > > > > print(leer2[leer2.columns[0]][:])
> >
> > 0 1
> > 1 0
> > 2 1
> > 3 2
> > 4 3
> > 5 4
> > 6 5
> > Name: regione, dtype: int64
> >
> > > > > print(leer2[leer2.columns[0]][:].unique())
> >
> > [1 0 2 3 4 5]
> >
> > -
> >
> > Sent with ProtonMail Secure Email.
> > ‐‐‐ Original Message ‐‐‐
> > On Monday, 20 de July de 2020 17:06, lemarchand8679 
> > lemarchand8...@gmail.com wrote:
> > Gracias Ricardi, ahí voy.
> > Argentina y la mayoría de los lugares se repite 29 veces (filas). Cada fila 
> > contiene información distinta, por lo que no hay datos repetidos.
> > Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que no 
> > lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese 
> > país que ingresé está almacenado en el csv. No quiero modificar, borrar o 
> > añadir algo, sólo saber si un país está o no en la lista y en caso de que 
> > así sea, que lo muestre pero no todas las veces que se repite.
> > Espero haberme explicado mejor, gracias
> > Enviado desde mi smartphone Samsung Galaxy.
> >  Mensaje original 
> > De: Ricardo Cárdenes ricardo.carde...@gmail.com
> > Fecha: 20/7/20 16:59 (GMT-03:00)
> > A: La lista de python en castellano python-es@python.org
> > Asunto: Re: [Python-es] [Consulta] Ordenar elementos de una lista
> > No hay una respuesta única. Eso depende de tu problema en concreto.
> > Por ejemplo, dices que el número de área está repetido... ¿Significa eso 
> > que el resto de valores también están repetidos? Es decir, ¿la fila con los 
> > datos de Argentina aparece 29 veces? En ese caso entiendo que lo que 
> > quieres es eliminar duplicados. Eso es trivial: simplemente, mantén algún 
> > tipo de registro de los datos que vas leyendo del CSV (un set almacenando 
> > los códigos es perfecto para esto) y no añadas a la lista las filas que ya 
> > "viste".
> > Si lo que quieres es consolidar datos (cada fila con el mismo código tiene 
> > datos diferentes, que quieres sumar, o hacer media, o...) entonces la 
> > respuesta va a ser diferente.
> > Necesitas explicar de forma clara qué es lo que pretendes y entonces se te 
> > puede dar una respuesta.
> > On Mon, Jul 20, 2020 at 9:36 AM Lemarchand Barker lemarchand8...@gmail.com 
> > wrote:
> >
> > > Hola, esta vez mi pregunta es más simple, sigo jugando el archivo csv
> > > y para seguir practicando, lo que estoy haciendo es lo siguiente.
> > > Definí una lista la cual la dejé vacía, y a partir del csv guardé en
> > > la lista 3 valores: Area, Population y Value. Le cambié los nombres
> > > porque eran muy largos y para tratar de evitar errores en la búsqueda
> > > luego.
> > > Una vez añadidos estos 3 datos a la lista, los imprimía por ejemplo
> > > los valores contenidos en Area y vi que los datos estaban repetidos.
> > > Por ejemplo, en mi caso soy de Argentina y el código que le
> > > corresponde a mi país es el 32 y mediante el for, recorrí la lista y
> > > vi que ese número se repite 29 veces y así con la mayoría de los
> > > países del listado. Ahora mi pregunta es la siguiente

Re: [Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema Lemarchand Barker
Lo del diccionario es algo que lo pensé, tendría que darle más forma a eso.
A ver quiero hacer lo siguiente:

lugar = input("Ingrese el nombre del país: ")
Ingresa: Argentina

Entonces en vez de mostrar las 29 veces que aparece el país que
muestre sólo una vez, porque en este caso no me interesa ver los datos
almacenados y correspondientes al país, sino sólo saber si está o no y
acá me gustaría enganchar con el diccionario o no se si tiene sentido.
Es decir, primero saber si el país se encuentra y si está, entonces
después veo de buscar cuál es su código correspondiente y a partir de
eso armar si es posible un diccionario.
Espero que ahora si se haya entendido bien, sólo necesito saber si
está el país, si ingreso Finlandia, saber si está o no y así con el
resto de países.
Gracias, saludos

El lun., 20 jul. 2020 a las 18:09, Ricardo Cárdenes
() escribió:
>
> De nuevo, depende de lo que quieras mostrar, de forma más detallada. Dices:
>
> Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que no 
> lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese país 
> que ingresé está almacenado en el csv
>
>
> Tendrías que clarificar lo que estás imprimiendo. Por ejemplo:
>
> ¿Sólo quieres saber si se incluyen datos del país en cuestión, pero no 
> imprimirlos? ¡Bueno, entonces no los imprimas! Imprime sólo "sí, está", o 
> cualquier otra cosa que tú quieras. Sólo una vez. Entiendo que estás iterando 
> sobre la lista de datos e imprimiendo "Argentina" cada vez que aparece el 
> código. En lugar de eso, podrías detener la búsqueda (con un break, 
> probablemente) cuando encuentres la primera coincidencia.
> ¿Quieres mostrar los datos, pero no repetir el código en cada fila? ¡No lo 
> hagas! Muestra sólo las columnas que te interesan.
>
> Para la primera, por ejemplo, podrías incluso mantener una lista separada (o 
> casi mejor, un set) con los códigos de los países que aparecen. Entonces 
> comprobar si el país está incluido o no es trivial.
>
> O podrías combinar ambos puntos: usar un diccionario, indizado por el código 
> del país, cuyos valores fueran listas de los datos de los respectivos países 
> (un par valor-lista para cada código de país). Y como el dato del país ya 
> está en el índice, no tienes que repetirlo en los datos almacenados. Eso te 
> permitiría tener acceso inmediato a los datos exclusivos a un país.
>
> Claro que esto último sólo es útil si todas tus búsquedas van indizadas por 
> país.
>
> No sé, como te digo, nos vas dando información poquito a poquito de lo que 
> quieres hacer y eso deja demasiadas cosas abiertas.
>
> On Mon, Jul 20, 2020 at 10:07 AM lemarchand8679  
> wrote:
>>
>> Gracias Ricardi, ahí voy.
>> Argentina y la mayoría de los lugares se repite 29 veces (filas). Cada fila 
>> contiene información distinta, por lo que no hay datos repetidos.
>> Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que no 
>> lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese 
>> país que ingresé está almacenado en el csv. No quiero modificar, borrar o 
>> añadir algo, sólo saber si un país está o no en la lista y en caso de que 
>> así sea, que lo muestre pero no todas las veces que se repite.
>> Espero haberme explicado mejor, gracias
>>
>>
>>
>> Enviado desde mi smartphone Samsung Galaxy.
>>
>>
>>  Mensaje original 
>> De: Ricardo Cárdenes 
>> Fecha: 20/7/20 16:59 (GMT-03:00)
>> A: La lista de python en castellano 
>> Asunto: Re: [Python-es] [Consulta] Ordenar elementos de una lista
>>
>> No hay una respuesta única. Eso depende de tu problema en concreto.
>>
>> Por ejemplo, dices que el número de área está repetido... ¿Significa eso que 
>> el resto de valores también están repetidos? Es decir, ¿la fila con los 
>> datos de Argentina aparece 29 veces? En ese caso entiendo que lo que quieres 
>> es eliminar duplicados. Eso es trivial: simplemente, mantén algún tipo de 
>> registro de los datos que vas leyendo del CSV (un set almacenando los 
>> códigos es perfecto para esto) y no añadas a la lista las filas que ya 
>> "viste".
>>
>> Si lo que quieres es consolidar datos (cada fila con el mismo código tiene 
>> datos diferentes, que quieres sumar, o hacer media, o...) entonces la 
>> respuesta va a ser diferente.
>>
>> Necesitas explicar de forma clara qué es lo que pretendes y entonces se te 
>> puede dar una respuesta.
>>
>> On Mon, Jul 20, 2020 at 9:36 AM Lemarchand Barker  
>> wrote:
>>>
>>> Hola, esta vez mi pregunta es más simple, sigo jugando el archivo csv
>>> y para seguir p

Re: [Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema Ricardo Cárdenes
De nuevo, depende de lo que quieras mostrar, de forma más detallada. Dices:

Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que no
lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese
país que ingresé está almacenado en el csv


Tendrías que clarificar lo que estás imprimiendo. Por ejemplo:

   - ¿Sólo quieres saber si se incluyen datos del país en cuestión, pero no
   imprimirlos? ¡Bueno, entonces no los imprimas! Imprime sólo "sí, está", o
   cualquier otra cosa que tú quieras. Sólo una vez. Entiendo que estás
   iterando sobre la lista de datos e imprimiendo "Argentina" cada vez que
   aparece el código. En lugar de eso, podrías detener la búsqueda (con un
   break, probablemente) cuando encuentres la primera coincidencia.
   - ¿Quieres mostrar los datos, pero no repetir el código en cada fila?
   ¡No lo hagas! Muestra sólo las columnas que te interesan.

Para la primera, por ejemplo, podrías incluso mantener una lista separada
(o casi mejor, un set) con los códigos de los países que aparecen. Entonces
comprobar si el país está incluido o no es trivial.

O podrías combinar ambos puntos: usar un *diccionario*, indizado por el
código del país, cuyos valores fueran listas de los datos de los
respectivos países (un par valor-lista para cada código de país). Y como el
dato del país ya está en el índice, no tienes que repetirlo en los datos
almacenados. Eso te permitiría tener acceso inmediato a los datos
exclusivos a un país.

Claro que esto último sólo es útil si todas tus búsquedas van indizadas por
país.

No sé, como te digo, nos vas dando información poquito a poquito de lo que
quieres hacer y eso deja demasiadas cosas abiertas.

On Mon, Jul 20, 2020 at 10:07 AM lemarchand8679 
wrote:

> Gracias Ricardi, ahí voy.
> Argentina y la mayoría de los lugares se repite 29 veces (filas). Cada
> fila contiene información distinta, por lo que no hay datos repetidos.
> Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que
> no lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese
> país que ingresé está almacenado en el csv. No quiero modificar, borrar o
> añadir algo, sólo saber si un país está o no en la lista y en caso de que
> así sea, que lo muestre pero no todas las veces que se repite.
> Espero haberme explicado mejor, gracias
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>
>  Mensaje original 
> De: Ricardo Cárdenes 
> Fecha: 20/7/20 16:59 (GMT-03:00)
> A: La lista de python en castellano 
> Asunto: Re: [Python-es] [Consulta] Ordenar elementos de una lista
>
> No hay una respuesta única. Eso depende de tu problema en concreto.
>
> Por ejemplo, dices que el número de área está repetido... ¿Significa eso
> que el resto de valores también están repetidos? Es decir, ¿la fila con los
> datos de Argentina aparece 29 veces? En ese caso entiendo que lo que
> quieres es *eliminar duplicados*. Eso es trivial: simplemente, mantén
> algún tipo de registro de los datos que vas leyendo del CSV (un set
> almacenando los códigos es perfecto para esto) y no añadas a la lista las
> filas que ya "viste".
>
> Si lo que quieres es consolidar datos (cada fila con el mismo código tiene
> datos diferentes, que quieres sumar, o hacer media, o...) entonces la
> respuesta va a ser diferente.
>
> Necesitas explicar de forma clara qué es lo que pretendes y entonces se te
> puede dar una respuesta.
>
> On Mon, Jul 20, 2020 at 9:36 AM Lemarchand Barker <
> lemarchand8...@gmail.com> wrote:
>
>> Hola, esta vez mi pregunta es más simple, sigo jugando el archivo csv
>> y para seguir practicando, lo que estoy haciendo es lo siguiente.
>> Definí una lista la cual la dejé vacía, y a partir del csv guardé en
>> la lista 3 valores: Area, Population y Value. Le cambié los nombres
>> porque eran muy largos y para tratar de evitar errores en la búsqueda
>> luego.
>> Una vez añadidos estos 3 datos a la lista, los imprimía por ejemplo
>> los valores contenidos en Area y vi que los datos estaban repetidos.
>> Por ejemplo, en mi caso soy de Argentina y el código que le
>> corresponde a mi país es el 32 y mediante el for, recorrí la lista y
>> vi que ese número se repite 29 veces y así con la mayoría de los
>> países del listado. Ahora mi pregunta es la siguiente, hay alguna
>> forma de listar los nombres de los países pero que figuren solo una
>> vez y no las 29 o las x cantidad de veces que figuren en el listado?
>> Porque como dije antes, Argentina tiene el número 32 pero si imprimo
>> el listado me aparece las 29 veces que figura en el csv.
>> Mi idea es por ejemplo imprimir el listado de países, pero sin la
>> repetición.
>> Muchas gracias, saludos
>> 

Re: [Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema Darío vía Python-es
No entiendo si lo que precisas es que muestre sólo los valores de los países 
pero sin repetición, quizás esto ayude:

archivoCSV[archivoCSV.columns[0]][:].unique()

donde el índice 0 indicaría la columna de países, depende dónde esté dicha 
columna. Por ejemplo si los países son 1, 0, 1, 2, 3, 4, 5:

>>> print(leer2[leer2.columns[0]][:])

0 1

1 0

2 1

3 2

4 3

5 4

6 5

Name: regione, dtype: int64

>>> print(leer2[leer2.columns[0]][:].unique())

[1 0 2 3 4 5]

-

Sent with [ProtonMail](https://protonmail.com) Secure Email.

‐‐‐ Original Message ‐‐‐
On Monday, 20 de July de 2020 17:06, lemarchand8679  
wrote:

> Gracias Ricardi, ahí voy.
> Argentina y la mayoría de los lugares se repite 29 veces (filas). Cada fila 
> contiene información distinta, por lo que no hay datos repetidos.
> Entonces lo que quiero hacer es, ingresar el nombre de un país, pero que no 
> lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese país 
> que ingresé está almacenado en el csv. No quiero modificar, borrar o añadir 
> algo, sólo saber si un país está o no en la lista y en caso de que así sea, 
> que lo muestre pero no todas las veces que se repite.
> Espero haberme explicado mejor, gracias
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>  Mensaje original 
> De: Ricardo Cárdenes 
> Fecha: 20/7/20 16:59 (GMT-03:00)
> A: La lista de python en castellano 
> Asunto: Re: [Python-es] [Consulta] Ordenar elementos de una lista
>
> No hay una respuesta única. Eso depende de tu problema en concreto.
>
> Por ejemplo, dices que el número de área está repetido... ¿Significa eso que 
> el resto de valores también están repetidos? Es decir, ¿la fila con los datos 
> de Argentina aparece 29 veces? En ese caso entiendo que lo que quieres es 
> eliminar duplicados. Eso es trivial: simplemente, mantén algún tipo de 
> registro de los datos que vas leyendo del CSV (un set almacenando los códigos 
> es perfecto para esto) y no añadas a la lista las filas que ya "viste".
>
> Si lo que quieres es consolidar datos (cada fila con el mismo código tiene 
> datos diferentes, que quieres sumar, o hacer media, o...) entonces la 
> respuesta va a ser diferente.
>
> Necesitas explicar de forma clara qué es lo que pretendes y entonces se te 
> puede dar una respuesta.
>
> On Mon, Jul 20, 2020 at 9:36 AM Lemarchand Barker  
> wrote:
>
>> Hola, esta vez mi pregunta es más simple, sigo jugando el archivo csv
>> y para seguir practicando, lo que estoy haciendo es lo siguiente.
>> Definí una lista la cual la dejé vacía, y a partir del csv guardé en
>> la lista 3 valores: Area, Population y Value. Le cambié los nombres
>> porque eran muy largos y para tratar de evitar errores en la búsqueda
>> luego.
>> Una vez añadidos estos 3 datos a la lista, los imprimía por ejemplo
>> los valores contenidos en Area y vi que los datos estaban repetidos.
>> Por ejemplo, en mi caso soy de Argentina y el código que le
>> corresponde a mi país es el 32 y mediante el for, recorrí la lista y
>> vi que ese número se repite 29 veces y así con la mayoría de los
>> países del listado. Ahora mi pregunta es la siguiente, hay alguna
>> forma de listar los nombres de los países pero que figuren solo una
>> vez y no las 29 o las x cantidad de veces que figuren en el listado?
>> Porque como dije antes, Argentina tiene el número 32 pero si imprimo
>> el listado me aparece las 29 veces que figura en el csv.
>> Mi idea es por ejemplo imprimir el listado de países, pero sin la repetición.
>> Muchas gracias, saludos
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema lemarchand8679
Gracias Ricardi, ahí voy.Argentina y la mayoría de los lugares se repite 29 
veces (filas). Cada fila contiene información distinta, por lo que no hay datos 
repetidos.Entonces lo que quiero hacer es, ingresar el nombre de un país, pero 
que no lo imprima por pantalla las 29 veces que aparece, sino solo saber si ese 
país que ingresé está almacenado en el csv. No quiero modificar, borrar o 
añadir algo, sólo saber si un país está o no en la lista y en caso de que así 
sea, que lo muestre pero no todas las veces que se repite.Espero haberme 
explicado mejor, graciasEnviado desde mi smartphone Samsung Galaxy.
 Mensaje original De: Ricardo Cárdenes 
 Fecha: 20/7/20  16:59  (GMT-03:00) A: La lista de 
python en castellano  Asunto: Re: [Python-es] [Consulta] 
Ordenar elementos de una lista No hay una respuesta única. Eso depende de tu 
problema en concreto.Por ejemplo, dices que el número de área está repetido... 
¿Significa eso que el resto de valores también están repetidos? Es decir, ¿la 
fila con los datos de Argentina aparece 29 veces? En ese caso entiendo que lo 
que quieres es eliminar duplicados. Eso es trivial: simplemente, mantén algún 
tipo de registro de los datos que vas leyendo del CSV (un set almacenando los 
códigos es perfecto para esto) y no añadas a la lista las filas que ya 
"viste".Si lo que quieres es consolidar datos (cada fila con el mismo código 
tiene datos diferentes, que quieres sumar, o hacer media, o...) entonces la 
respuesta va a ser diferente.Necesitas explicar de forma clara qué es lo que 
pretendes y entonces se te puede dar una respuesta.On Mon, Jul 20, 2020 at 9:36 
AM Lemarchand Barker  wrote:Hola, esta vez mi 
pregunta es más simple, sigo jugando el archivo csv
y para seguir practicando, lo que estoy haciendo es lo siguiente.
Definí una lista la cual la dejé vacía, y a partir del csv guardé en
la lista 3 valores: Area, Population y Value. Le cambié los nombres
porque eran muy largos y para tratar de evitar errores en la búsqueda
luego.
Una vez añadidos estos 3 datos a la lista, los imprimía por ejemplo
los valores contenidos en Area y vi que los datos estaban repetidos.
Por ejemplo, en mi caso soy de Argentina y el código que le
corresponde a mi país es el 32 y mediante el for, recorrí la lista y
vi que ese número se repite 29 veces y así con la mayoría de los
países del listado. Ahora mi pregunta es la siguiente, hay alguna
forma de listar los nombres de los países pero que figuren solo una
vez y no las 29 o las x cantidad de veces que figuren en el listado?
Porque como dije antes, Argentina tiene el número 32 pero si imprimo
el listado me aparece las 29 veces que figura en el csv.
Mi idea es por ejemplo imprimir el listado de países, pero sin la repetición.
Muchas gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema Ricardo Cárdenes
No hay una respuesta única. Eso depende de tu problema en concreto.

Por ejemplo, dices que el número de área está repetido... ¿Significa eso
que el resto de valores también están repetidos? Es decir, ¿la fila con los
datos de Argentina aparece 29 veces? En ese caso entiendo que lo que
quieres es *eliminar duplicados*. Eso es trivial: simplemente, mantén algún
tipo de registro de los datos que vas leyendo del CSV (un set almacenando
los códigos es perfecto para esto) y no añadas a la lista las filas que ya
"viste".

Si lo que quieres es consolidar datos (cada fila con el mismo código tiene
datos diferentes, que quieres sumar, o hacer media, o...) entonces la
respuesta va a ser diferente.

Necesitas explicar de forma clara qué es lo que pretendes y entonces se te
puede dar una respuesta.

On Mon, Jul 20, 2020 at 9:36 AM Lemarchand Barker 
wrote:

> Hola, esta vez mi pregunta es más simple, sigo jugando el archivo csv
> y para seguir practicando, lo que estoy haciendo es lo siguiente.
> Definí una lista la cual la dejé vacía, y a partir del csv guardé en
> la lista 3 valores: Area, Population y Value. Le cambié los nombres
> porque eran muy largos y para tratar de evitar errores en la búsqueda
> luego.
> Una vez añadidos estos 3 datos a la lista, los imprimía por ejemplo
> los valores contenidos en Area y vi que los datos estaban repetidos.
> Por ejemplo, en mi caso soy de Argentina y el código que le
> corresponde a mi país es el 32 y mediante el for, recorrí la lista y
> vi que ese número se repite 29 veces y así con la mayoría de los
> países del listado. Ahora mi pregunta es la siguiente, hay alguna
> forma de listar los nombres de los países pero que figuren solo una
> vez y no las 29 o las x cantidad de veces que figuren en el listado?
> Porque como dije antes, Argentina tiene el número 32 pero si imprimo
> el listado me aparece las 29 veces que figura en el csv.
> Mi idea es por ejemplo imprimir el listado de países, pero sin la
> repetición.
> Muchas gracias, saludos
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] Ordenar elementos de una lista

2020-07-20 Por tema Lemarchand Barker
Hola, esta vez mi pregunta es más simple, sigo jugando el archivo csv
y para seguir practicando, lo que estoy haciendo es lo siguiente.
Definí una lista la cual la dejé vacía, y a partir del csv guardé en
la lista 3 valores: Area, Population y Value. Le cambié los nombres
porque eran muy largos y para tratar de evitar errores en la búsqueda
luego.
Una vez añadidos estos 3 datos a la lista, los imprimía por ejemplo
los valores contenidos en Area y vi que los datos estaban repetidos.
Por ejemplo, en mi caso soy de Argentina y el código que le
corresponde a mi país es el 32 y mediante el for, recorrí la lista y
vi que ese número se repite 29 veces y así con la mayoría de los
países del listado. Ahora mi pregunta es la siguiente, hay alguna
forma de listar los nombres de los países pero que figuren solo una
vez y no las 29 o las x cantidad de veces que figuren en el listado?
Porque como dije antes, Argentina tiene el número 32 pero si imprimo
el listado me aparece las 29 veces que figura en el csv.
Mi idea es por ejemplo imprimir el listado de países, pero sin la repetición.
Muchas gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Leer csv

2020-07-19 Por tema Miguel Sanchez
Hola:

Ese archivo no es "utf-8 encoded".


Para abrirlo con pandas usa algo como esto:

pd.read_csv('SYB62_1_201907_Population_Surface_Area_and_Density.csv',
sep=',',
encoding="latin-1")

con csv


with open('SYB62_1_201907_Population_Surface_Area_and_Density.csv', 
encoding="latin-1",) as file:
reader = csv.reader(file)
for row in reader:
print(row)


Saludos


El Sun, 19 Jul 2020 16:22:23 -0300
Lemarchand Barker  dijo:

> Buenas, estoy leyendo un csv, al principio no me leía, hasta que logré que
> lo haga, pero el problema viene cuando lee. Me muestra el resultado y al
> final me da un mensaje de error.
> 
> El código es el siguiente:
> 
> import csv
> 
> # with open('SYB62_1_201907_Population_Surface_Area_and_Density.csv',
> newline='') as File:
> with open('population.csv', 'rt') as File:
> reader = csv.reader(File)
> for row in reader:
> print(row)
> 
> La salida es la siguiente:
> 
> ['188', 'Costa Rica', '2005', 'Population mid-year estimates for females
> (millions)', '2.1369', '', 'United Nations Population Division, New York,
> World Population Prospects: The 2019 Revision, last accessed June 2019.']
> ['188', 'Costa Rica', '2005', 'Sex ratio (males per 100 females)',
> '100.5460', '', 'United Nations Population Division, New York, World
> Population Prospects: The 2019 Revision; supplemented by data from the
> United Nations Statistics Division, New York, Demographic Yearbook 2015 and
> Secretariat for the Pacific Community (SPC) for small countries or areas,
> last accessed June 2019.']
> Traceback (most recent call last):
>   File "/home/raiden/Programacion/curso/ejercicios/testcsv.py", line 6, in
> 
> for row in reader:
>   File "/usr/lib/python3.8/codecs.py", line 322, in decode
> (result, consumed) = self._buffer_decode(data, self.errors, final)
> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf4 in position 6529:
> invalid continuation byte
> 
> Solo copié un fragmento de toda la salida; lo que se ve antes del
> Traceback; porque es bastante extenso el texto. Otra cosa que hice fue
> cambiarle el nombre, porque era muy extenso el original.
> 
> Al abrir el archivo con la planilla de cálculo la línea 6529, es la
> siguiente:
> 760 Syrian Arab Republic 2010 Population aged 0 to 14 years old (percentage)
> 37.3903
> 
> El contenido del csv se puede ver en este link (formato pdf): pdf
> 
> El original se encuentra acá: http://data.un.org/
> El csv es desde la izquierda, la primer columna, donde dice:
> - Population, surface area and density
> - PDF  Area and Density.pdf> | CSV
>  and Density.csv>   Updated: 23-Jul-2019
> Perdón la ignorancia pero no se que puede ser lo que me esté generando esa
> salida de Unicode.
> Saludos, gracias
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] max() y min()

2020-07-19 Por tema kikocorreoso vía Python-es



Sent with ProtonMail Secure Email.

‐‐‐ Original Message ‐‐‐
On Thursday, 16 de July de 2020 16:53, Lemarchand Barker 
 wrote:

> Buenas, estoy viendo las opciones que me dieron con count().
> Ahora viene mi pregunta, cuál sería la diferencia entre lo que me recomendó:
> Juan José:
> va = cadena.count('a')

Para que sea igual que usando Counter deberías usar cadena.lower().count('a').

En este primer caso solo contará lo que le pidas.

>
> Y lo que dijo:
> Ricardo:
>
> > > > from collections import Counter
> > > > cuentas = Counter(cadena.lower())
> > > > va = cuentas.get('a', 0)
> > > > ve = cuentas.get('e', 0)
> > > > va

En este caso, en cuentas tienes un contador de los distintos elementos (letras, 
espacios,...), no solo las vocales.

La solución siempre dependerá del problema. Para este problema concreto yo 
usaría Counter porque me parece más elegante pero la primera opción sería 
igualmente válida. Si tienes que escalar la solución a documentos con millones 
de letras y el rendimiento es importante quizá habría que buscar otra 
respuesta. Si no quieres hacer imports quizá la primera solución sea más 
interesante (para ahorrar ms en un CLI, por ejemplo), si quieres hacer...


Saludos.
>
> 10
>
> > > > ve
>
> 7
>
> Gracias, saludos
>
> El mié., 15 jul. 2020 a las 21:49, lemarchand8679
> (lemarchand8...@gmail.com) escribió:
>
> > Mañana lo reviso también, muchas gracias
> > Enviado desde mi smartphone Samsung Galaxy.
> >  Mensaje original 
> > De: Ricardo Cárdenes ricardo.carde...@gmail.com
> > Fecha: 15/7/20 21:10 (GMT-03:00)
> > A: La lista de python en castellano python-es@python.org
> > Asunto: Re: [Python-es] [Consulta] max() y min()
> > Te voy a dar una mejor:
> >
> > > > > from collections import Counter
> > > > > cuentas = Counter(cadena.lower())
> > > > > va = cuentas.get('a', 0)
> > > > > ve = cuentas.get('e', 0)
> > > > > va
> > > > > 10
> > >
> > > > > ve
> > > > > 7
> >
> > Tras ejecutar la segunda línea, cuentas es un objeto con la misma interfaz 
> > que un diccionario.
> > Observa que pasé cadena.lower() a Counter, pensando que quieres todas las 
> > vocales, no sólo las minúsculas. Adáptalo según necesites.
> > On Wed, Jul 15, 2020 at 11:08 AM Lemarchand Barker lemarchand8...@gmail.com 
> > wrote:
> >
> > > Lo voy a buscar y voy a ver.
> > > Muchas gracias
> > > El mié., 15 jul. 2020 a las 18:03, Juan José Gómez Romera
> > > (jjgom...@gmail.com) escribió:
> > >
> > > > Hola, como uso te hace la función q necesitas, yo sin embargo 
> > > > recortaria código usando count:
> > > > va = cadena.count('a')
> > > > ...
> > > > Perdón por ser tan parco con el código, estoy desde móvil.
> > > > El mié., 15 jul. 2020 22:28, Lemarchand Barker lemarchand8...@gmail.com 
> > > > escribió:
> > > >
> > > > > Hola, vengo con otra pregunta tonta.
> > > > > Estaba jugando con for, la típica de buscar máximos y mínimos, les
> > > > > dejo el código:
> > > > > lista = []
> > > > > cadena = "Esto es una cadena que contiene varias letras y muchas 
> > > > > palabras"
> > > > > vocales = ['a', 'e', 'i', 'o', 'u']
> > > > > for x in cadena:
> > > > > if x == 'a':
> > > > > va = va + 1
> > > > > elif x == 'e':
> > > > > ve = ve + 1
> > > > > elif x == 'i':
> > > > > vi = vi + 1
> > > > > elif x == 'o':
> > > > > vo = vo + 1
> > > > > elif x == 'u':
> > > > > vu = vu + 1
> > > > > lista.append(va)
> > > > > lista.append(ve)
> > > > > lista.append(vi)
> > > > > lista.append(vo)
> > > > > lista.append(vu)
> > > > > total = va + ve + vi + vo + vu
> > > > > max_item = max(lista, key=int)
> > > > > min_item = min(lista, key=int)
> > > > > print(f"Mayor: {max_item}")
> > > > > print(f"Menor: {min_item}")
> > > > > Bueno mi consulta es la siguiente, está bien que haya utilizado max y
> > > > > min para tratar de buscar cuál es la vocal que más se repite y menos
> > > > > se repite? Pero el tema es el siguiente hay 2 vocales que se repiten
> > > > > solamente 2 veces, que son: i y o. Asumo que por el orden de los
> > > > > elementos en la lista el 2 que muestra se corresponde a la i.
> > > > > Bueno eso es todo, consultar si está bien utilizado el max y el min,
> > > > > saludos y gracias.
> > > > >
> > > > > Python-es mailing list
> > > > > Python-es@python.org
> > > > > https://mail.python.org/mailman/listinfo/python-es
> > > >
> > > > Python-es mailing list
> > > > Python-es@python.org
> > > > https://mail.python.org/mailman/listinfo/python-es
> > >
> > > Python-es mailing list
> > > Python-es@python.org
> > > https://mail.python.org/mailman/listinfo/python-es
>
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es


___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Leer csv

2020-07-19 Por tema Lemarchand Barker
De lujo Darío y Sebastián, gracias

El dom., 19 jul. 2020 a las 17:37, Sebastián Arancibia
() escribió:
>
> Y pandas te abre un mundo de cosas... el inicio para ir aprendiendo data 
> science.
>
> Saludos.
>
> On Sun, Jul 19, 2020 at 4:23 PM Darío vía Python-es  
> wrote:
>>
>>
>> Ahora me quedó más claro, que tengo que usar pandas, en el mail anterior no 
>> lo había entendido. Gracias
>>
>>
>> Sí perdón la desprolijidad! mejor aún es la documentación del paquete, la 
>> oficial está en inglés y son miles de páginas, esta página me ayudó mucho 
>> con pandas y otras librerías y python per sé:
>> https://riptutorial.com/es/topic?q=pandas=Search
>>
>>
>>
>>
>> Enviado desde mi smartphone Samsung Galaxy.
>>
>>
>>  Mensaje original 
>> De: Darío vía Python-es 
>> Fecha: 19/7/20 17:10 (GMT-03:00)
>> A: La lista de python en castellano 
>> CC: Darío 
>> Asunto: Re: [Python-es] [Consulta] Leer csv
>>
>> Usando el archivo original éstas son las salidas:
>> >>> import pandas as pd
>>
>> >>> leer = pd.read_csv('/home/darioslc/Descargas/demo.csv')
>>
>> >>> leer
>>T02 Region/Contry/Area...  Value
>> 0   1...  6541.9070
>> 1   1...  3296.4853
>> 2   1...  3245.4217
>> 3   1...   101.5734
>> 4   1...28.1425
>> 5   1...10.2516
>>
>> [6 rows x 5 columns]
>>
>> >>> leer.columns # muestra todas las columnas
>> Index(['T02 Region/Contry/Area', ' Population density and surface area',
>>' Year', ' Series', ' Value'],
>>   dtype='object')
>>
>> >>> leer.columns[0]
>> 'T02 Region/Contry/Area'
>>
>> >>> leer[leer.columns[2]]
>> 02005
>> 12005
>> 22005
>> 32005
>> 42005
>> 52005
>> Name:  Year, dtype: int64
>>
>> >>> leer[:] # muestra todo
>>T02 Region/Contry/Area...  Value
>> 0   1...  6541.9070
>> 1   1...  3296.4853
>> 2   1...  3245.4217
>> 3   1...   101.5734
>> 4   1...28.1425
>> 5   1...10.2516
>>
>> [6 rows x 5 columns]
>>
>> >>> leer[0:3] # muestra de la columna 0 a la 3
>>T02 Region/Contry/Area...  Value
>> 0   1...  6541.9070
>> 1   1...  3296.4853
>> 2   1...  3245.4217
>>
>> [3 rows x 5 columns]
>>
>> >>> # renombro la primer columna
>>
>> >>> leer2 = leer.rename(columns = {leer.columns[0]:'regione'})
>>
>> >>> leer2
>>regione...  Value
>> 01...  6541.9070
>> 11...  3296.4853
>> 21...  3245.4217
>> 31...   101.5734
>> 41...28.1425
>> 51...10.2516
>>
>> [6 rows x 5 columns]
>>
>> No muestra todos los datos porque los nombres de columna son excesivamente 
>> largos, se puede renombrar con el comando anterior separando por comas lo 
>> renombrado (primero va el nombre viejo y después de los : el nuevo)
>>
>> Luego de abierto lo que podés hacer con pandas es realmente todo!!! desde 
>> calcular valores medios, máximos, mínimos, interpolar, graficar, etc
>>
>> -
>>
>> Sent with ProtonMail Secure Email.
>>
>> ‐‐‐ Original Message ‐‐‐
>> On Sunday, 19 de July de 2020 16:49, Lemarchand Barker 
>>  wrote:
>>
>> > Estoy probando copiar un poco de la data del csv, lo pasé a un editor
>> > y el código funcionó perfecto. No se si el archivo original tendrá
>> > algún inconveniente, mi código o funciona porque copié una parte de la
>> > info y no todo el resto.
>> > Adjunto el archivito que hice, el código no lo toqué, lo único que
>> > hice fue comentar la línea del with para colocar el nombre nuevo, y
>> > quedó así:
>> >
>> > with open('demo.csv', 'rt') as File:
>> >
>> > Y la salida es la siguiente:
>> > ['T02 Region/Contry/Area', ' Population density and surface area', '
>> > Year', ' Series', ' Value']
&g

Re: [Python-es] [Consulta] Leer csv

2020-07-19 Por tema Sebastián Arancibia
Y pandas te abre un mundo de cosas... el inicio para ir aprendiendo data
science.

Saludos.

On Sun, Jul 19, 2020 at 4:23 PM Darío vía Python-es 
wrote:

>
> Ahora me quedó más claro, que tengo que usar pandas, en el mail anterior
> no lo había entendido. Gracias
>
>
> Sí perdón la desprolijidad! mejor aún es la documentación del paquete, la
> oficial está en inglés y son miles de páginas, esta página me ayudó mucho
> con pandas y otras librerías y python per sé:
> https://riptutorial.com/es/topic?q=pandas=Search
>
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>
>  Mensaje original 
> De: Darío vía Python-es 
> Fecha: 19/7/20 17:10 (GMT-03:00)
> A: La lista de python en castellano 
> CC: Darío 
> Asunto: Re: [Python-es] [Consulta] Leer csv
>
> Usando el archivo original éstas son las salidas:
> >>> import pandas as pd
>
> >>> leer = pd.read_csv('/home/darioslc/Descargas/demo.csv')
>
> >>> leer
>T02 Region/Contry/Area...  Value
> 0   1...  6541.9070
> 1   1...  3296.4853
> 2   1...  3245.4217
> 3   1...   101.5734
> 4   1...28.1425
> 5   1...10.2516
>
> [6 rows x 5 columns]
>
> >>> leer.columns # muestra todas las columnas
> Index(['T02 Region/Contry/Area', ' Population density and surface area',
>' Year', ' Series', ' Value'],
>   dtype='object')
>
> >>> leer.columns[0]
> 'T02 Region/Contry/Area'
>
> >>> leer[leer.columns[2]]
> 02005
> 12005
> 22005
> 32005
> 42005
> 52005
> Name:  Year, dtype: int64
>
> >>> leer[:] # muestra todo
>T02 Region/Contry/Area...  Value
> 0   1...  6541.9070
> 1   1...  3296.4853
> 2   1...  3245.4217
> 3   1...   101.5734
> 4   1...28.1425
> 5   1...10.2516
>
> [6 rows x 5 columns]
>
> >>> leer[0:3] # muestra de la columna 0 a la 3
>T02 Region/Contry/Area...  Value
> 0   1...  6541.9070
> 1   1...  3296.4853
> 2   1...  3245.4217
>
> [3 rows x 5 columns]
>
> >>> # renombro la primer columna
>
> >>> leer2 = leer.rename(columns = {leer.columns[0]:'regione'})
>
> >>> leer2
>regione...  Value
> 01...  6541.9070
> 11...  3296.4853
> 21...  3245.4217
> 31...   101.5734
> 41...28.1425
> 51...10.2516
>
> [6 rows x 5 columns]
>
> No muestra todos los datos porque los nombres de columna son excesivamente
> largos, se puede renombrar con el comando anterior separando por comas lo
> renombrado (primero va el nombre viejo y después de los : el nuevo)
>
> Luego de abierto lo que podés hacer con pandas es realmente todo!!! desde
> calcular valores medios, máximos, mínimos, interpolar, graficar, etc
>
> -
>
> Sent with ProtonMail Secure Email.
>
> ‐‐‐ Original Message ‐‐‐
> On Sunday, 19 de July de 2020 16:49, Lemarchand Barker <
> lemarchand8...@gmail.com> wrote:
>
> > Estoy probando copiar un poco de la data del csv, lo pasé a un editor
> > y el código funcionó perfecto. No se si el archivo original tendrá
> > algún inconveniente, mi código o funciona porque copié una parte de la
> > info y no todo el resto.
> > Adjunto el archivito que hice, el código no lo toqué, lo único que
> > hice fue comentar la línea del with para colocar el nombre nuevo, y
> > quedó así:
> >
> > with open('demo.csv', 'rt') as File:
> >
> > Y la salida es la siguiente:
> > ['T02 Region/Contry/Area', ' Population density and surface area', '
> > Year', ' Series', ' Value']
> > ['1', ' Total all countries or areas', ' 2005', ' Population mid-year
> > estimates (millions)', ' 6541.9070']
> > ['1', ' Total all countries or areas', ' 2005', ' Population mid-year
> > estimates for males (millions)', ' 3296.4853']
> > ['1', ' Total all countries or areas', ' 2005', ' Population mid-year
> > estimates for females (millions)', ' 3245.4217']
> > ['1', ' Total all countries or areas', ' 2005', ' Sex ratio (males per
> > 100 females)', ' 101.5734']
> > ['1', ' Total all countries or areas', ' 2005', ' Populatio

Re: [Python-es] [Consulta] Leer csv

2020-07-19 Por tema Darío vía Python-es
> Ahora me quedó más claro, que tengo que usar pandas, en el mail anterior no 
> lo había entendido. Gracias

Sí perdón la desprolijidad! mejor aún es la documentación del paquete, la 
oficial está en inglés y son miles de páginas, esta página me ayudó mucho con 
pandas y otras librerías y python per sé:
https://riptutorial.com/es/topic?q=pandas=Search

> Enviado desde mi smartphone Samsung Galaxy.
>
>  Mensaje original 
> De: Darío vía Python-es 
> Fecha: 19/7/20 17:10 (GMT-03:00)
> A: La lista de python en castellano 
> CC: Darío 
> Asunto: Re: [Python-es] [Consulta] Leer csv
>
> Usando el archivo original éstas son las salidas:
>>>> import pandas as pd
>
>>>> leer = pd.read_csv('/home/darioslc/Descargas/demo.csv')
>
>>>> leer
> T02 Region/Contry/Area ... Value
> 0 1 ... 6541.9070
> 1 1 ... 3296.4853
> 2 1 ... 3245.4217
> 3 1 ... 101.5734
> 4 1 ... 28.1425
> 5 1 ... 10.2516
>
> [6 rows x 5 columns]
>
>>>> leer.columns # muestra todas las columnas
> Index(['T02 Region/Contry/Area', ' Population density and surface area',
> ' Year', ' Series', ' Value'],
> dtype='object')
>
>>>> leer.columns[0]
> 'T02 Region/Contry/Area'
>
>>>> leer[leer.columns[2]]
> 0 2005
> 1 2005
> 2 2005
> 3 2005
> 4 2005
> 5 2005
> Name: Year, dtype: int64
>
>>>> leer[:] # muestra todo
> T02 Region/Contry/Area ... Value
> 0 1 ... 6541.9070
> 1 1 ... 3296.4853
> 2 1 ... 3245.4217
> 3 1 ... 101.5734
> 4 1 ... 28.1425
> 5 1 ... 10.2516
>
> [6 rows x 5 columns]
>
>>>> leer[0:3] # muestra de la columna 0 a la 3
> T02 Region/Contry/Area ... Value
> 0 1 ... 6541.9070
> 1 1 ... 3296.4853
> 2 1 ... 3245.4217
>
> [3 rows x 5 columns]
>
>>>> # renombro la primer columna
>
>>>> leer2 = leer.rename(columns = {leer.columns[0]:'regione'})
>
>>>> leer2
> regione ... Value
> 0 1 ... 6541.9070
> 1 1 ... 3296.4853
> 2 1 ... 3245.4217
> 3 1 ... 101.5734
> 4 1 ... 28.1425
> 5 1 ... 10.2516
>
> [6 rows x 5 columns]
>
> No muestra todos los datos porque los nombres de columna son excesivamente 
> largos, se puede renombrar con el comando anterior separando por comas lo 
> renombrado (primero va el nombre viejo y después de los : el nuevo)
>
> Luego de abierto lo que podés hacer con pandas es realmente todo!!! desde 
> calcular valores medios, máximos, mínimos, interpolar, graficar, etc
>
> -
>
> Sent with ProtonMail Secure Email.
>
> ‐‐‐ Original Message ‐‐‐
> On Sunday, 19 de July de 2020 16:49, Lemarchand Barker 
>  wrote:
>
>> Estoy probando copiar un poco de la data del csv, lo pasé a un editor
>> y el código funcionó perfecto. No se si el archivo original tendrá
>> algún inconveniente, mi código o funciona porque copié una parte de la
>> info y no todo el resto.
>> Adjunto el archivito que hice, el código no lo toqué, lo único que
>> hice fue comentar la línea del with para colocar el nombre nuevo, y
>> quedó así:
>>
>> with open('demo.csv', 'rt') as File:
>>
>> Y la salida es la siguiente:
>> ['T02 Region/Contry/Area', ' Population density and surface area', '
>> Year', ' Series', ' Value']
>> ['1', ' Total all countries or areas', ' 2005', ' Population mid-year
>> estimates (millions)', ' 6541.9070']
>> ['1', ' Total all countries or areas', ' 2005', ' Population mid-year
>> estimates for males (millions)', ' 3296.4853']
>> ['1', ' Total all countries or areas', ' 2005', ' Population mid-year
>> estimates for females (millions)', ' 3245.4217']
>> ['1', ' Total all countries or areas', ' 2005', ' Sex ratio (males per
>> 100 females)', ' 101.5734']
>> ['1', ' Total all countries or areas', ' 2005', ' Population aged 0 to
>> 14 years old (porcentage)', ' 28.1425']
>> ['1', ' Total all countries or areas', ' 2005', ' Population aged 60+
>> years old (porcentage)', ' 10.2516']
>> []
>> Justo mando esto cuando Darío me respondió. Saludos
>>
>> El dom., 19 jul. 2020 a las 16:22, Lemarchand Barker
>> (lemarchand8...@gmail.com) escribió:
>>
>> > Buenas, estoy leyendo un csv, al principio no me leía, hasta que logré que 
>> > lo haga, pero el problema viene cuando lee. Me muestra el resultado y al 
>> > final me da un mensaje de error.
>> > El código es el siguiente:
>> > import csv
>> >
>> > with open('SYB62_1_201907_Population_Surface_Area_and_Density.csv', 
>> > newline='') as File:
>> >
>> > =

Re: [Python-es] [Consulta] Leer csv

2020-07-19 Por tema lemarchand8679
Ahora me quedó más claro, que tengo que usar pandas, en el mail anterior no lo 
había entendido. GraciasEnviado desde mi smartphone Samsung Galaxy.
 Mensaje original De: Darío vía Python-es 
 Fecha: 19/7/20  17:10  (GMT-03:00) A: La lista de python 
en castellano  CC: Darío  
Asunto: Re: [Python-es] [Consulta] Leer csv Usando el archivo original éstas 
son las salidas:>>> import pandas as pd>>> leer = 
pd.read_csv('/home/darioslc/Descargas/demo.csv')>>> leer   T02 
Region/Contry/Area    ...  Value0   1    ...  
6541.90701   1    ...  3296.48532   
1    ...  3245.42173   1    ...   101.57344 
  1    ...    28.14255   1    ...    
10.2516[6 rows x 5 columns]>>> leer.columns # muestra todas las 
columnasIndex(['T02 Region/Contry/Area', ' Population density and surface 
area',   ' Year', ' Series', ' Value'],  dtype='object')>>> 
leer.columns[0]'T02 Region/Contry/Area'>>> leer[leer.columns[2]]0    20051    
20052    20053    20054    20055    2005Name:  Year, dtype: int64>>> leer[:] # 
muestra todo   T02 Region/Contry/Area    ...  Value0
   1    ...  6541.90701   1    ...  3296.48532  
 1    ...  3245.42173   1    ...   
101.57344   1    ...    28.14255   
1    ...    10.2516[6 rows x 5 columns]>>> leer[0:3] # muestra de la 
columna 0 a la 3   T02 Region/Contry/Area    ...  Value0
   1    ...  6541.90701   1    ...  3296.48532  
 1    ...  3245.4217[3 rows x 5 columns]>>> # renombro 
la primer columna>>> leer2 = leer.rename(columns = 
{leer.columns[0]:'regione'})>>> leer2   regione    ...  Value0    1 
   ...  6541.90701    1    ...  3296.48532    1    ...  
3245.42173    1    ...   101.57344    1    ...    28.14255  
  1    ...    10.2516[6 rows x 5 columns]No muestra todos los datos porque 
los nombres de columna son excesivamente largos, se puede renombrar con el 
comando anterior separando por comas lo renombrado (primero va el nombre viejo 
y después de los : el nuevo)Luego de abierto lo que podés hacer con pandas es 
realmente todo!!! desde calcular valores medios, máximos, mínimos, interpolar, 
graficar, etc-Sent with ProtonMail Secure Email.‐‐‐ Original 
Message ‐‐‐On Sunday, 19 de July de 2020 16:49, Lemarchand Barker 
 wrote:> Estoy probando copiar un poco de la data del 
csv, lo pasé a un editor> y el código funcionó perfecto. No se si el archivo 
original tendrá> algún inconveniente, mi código o funciona porque copié una 
parte de la> info y no todo el resto.> Adjunto el archivito que hice, el código 
no lo toqué, lo único que> hice fue comentar la línea del with para colocar el 
nombre nuevo, y> quedó así:>> with open('demo.csv', 'rt') as File:>> Y la 
salida es la siguiente:> ['T02 Region/Contry/Area', ' Population density and 
surface area', '> Year', ' Series', ' Value']> ['1', ' Total all countries or 
areas', ' 2005', ' Population mid-year> estimates (millions)', ' 6541.9070']> 
['1', ' Total all countries or areas', ' 2005', ' Population mid-year> 
estimates for males (millions)', ' 3296.4853']> ['1', ' Total all countries or 
areas', ' 2005', ' Population mid-year> estimates for females (millions)', ' 
3245.4217']> ['1', ' Total all countries or areas', ' 2005', ' Sex ratio (males 
per> 100 females)', ' 101.5734']> ['1', ' Total all countries or areas', ' 
2005', ' Population aged 0 to> 14 years old (porcentage)', ' 28.1425']> ['1', ' 
Total all countries or areas', ' 2005', ' Population aged 60+> years old 
(porcentage)', ' 10.2516']> []> Justo mando esto cuando Darío me respondió. 
Saludos>> El dom., 19 jul. 2020 a las 16:22, Lemarchand Barker> 
(lemarchand8...@gmail.com) escribió:>> > Buenas, estoy leyendo un csv, al 
principio no me leía, hasta que logré que lo haga, pero el problema viene 
cuando lee. Me muestra el resultado y al final me da un mensaje de error.> > El 
código es el siguiente:> > import csv> >> > with 
open('SYB62_1_201907_Population_Surface_Area_and_Density.csv', newline='') as 
File:> >> > 
=>
 >> > with open('population.csv', 'rt') as File:> > reader = csv.reader(File)> 
> for row in reader:> > print(row)> > La salida es la siguiente:> > ['188', 
'Costa Rica', '2005', 'Population mid-year estimates for females (millions)', 
'2.1369', '

Re: [Python-es] [Consulta] Leer csv

2020-07-19 Por tema Darío vía Python-es
Usando el archivo original éstas son las salidas:
>>> import pandas as pd

>>> leer = pd.read_csv('/home/darioslc/Descargas/demo.csv')

>>> leer
   T02 Region/Contry/Area...  Value
0   1...  6541.9070
1   1...  3296.4853
2   1...  3245.4217
3   1...   101.5734
4   1...28.1425
5   1...10.2516

[6 rows x 5 columns]

>>> leer.columns # muestra todas las columnas
Index(['T02 Region/Contry/Area', ' Population density and surface area',
   ' Year', ' Series', ' Value'],
  dtype='object')

>>> leer.columns[0]
'T02 Region/Contry/Area'

>>> leer[leer.columns[2]]
02005
12005
22005
32005
42005
52005
Name:  Year, dtype: int64

>>> leer[:] # muestra todo
   T02 Region/Contry/Area...  Value
0   1...  6541.9070
1   1...  3296.4853
2   1...  3245.4217
3   1...   101.5734
4   1...28.1425
5   1...10.2516

[6 rows x 5 columns]

>>> leer[0:3] # muestra de la columna 0 a la 3
   T02 Region/Contry/Area...  Value
0   1...  6541.9070
1   1...  3296.4853
2   1...  3245.4217

[3 rows x 5 columns]

>>> # renombro la primer columna

>>> leer2 = leer.rename(columns = {leer.columns[0]:'regione'})

>>> leer2
   regione...  Value
01...  6541.9070
11...  3296.4853
21...  3245.4217
31...   101.5734
41...28.1425
51...10.2516

[6 rows x 5 columns]

No muestra todos los datos porque los nombres de columna son excesivamente 
largos, se puede renombrar con el comando anterior separando por comas lo 
renombrado (primero va el nombre viejo y después de los : el nuevo)

Luego de abierto lo que podés hacer con pandas es realmente todo!!! desde 
calcular valores medios, máximos, mínimos, interpolar, graficar, etc

-

Sent with ProtonMail Secure Email.

‐‐‐ Original Message ‐‐‐
On Sunday, 19 de July de 2020 16:49, Lemarchand Barker 
 wrote:

> Estoy probando copiar un poco de la data del csv, lo pasé a un editor
> y el código funcionó perfecto. No se si el archivo original tendrá
> algún inconveniente, mi código o funciona porque copié una parte de la
> info y no todo el resto.
> Adjunto el archivito que hice, el código no lo toqué, lo único que
> hice fue comentar la línea del with para colocar el nombre nuevo, y
> quedó así:
>
> with open('demo.csv', 'rt') as File:
>
> Y la salida es la siguiente:
> ['T02 Region/Contry/Area', ' Population density and surface area', '
> Year', ' Series', ' Value']
> ['1', ' Total all countries or areas', ' 2005', ' Population mid-year
> estimates (millions)', ' 6541.9070']
> ['1', ' Total all countries or areas', ' 2005', ' Population mid-year
> estimates for males (millions)', ' 3296.4853']
> ['1', ' Total all countries or areas', ' 2005', ' Population mid-year
> estimates for females (millions)', ' 3245.4217']
> ['1', ' Total all countries or areas', ' 2005', ' Sex ratio (males per
> 100 females)', ' 101.5734']
> ['1', ' Total all countries or areas', ' 2005', ' Population aged 0 to
> 14 years old (porcentage)', ' 28.1425']
> ['1', ' Total all countries or areas', ' 2005', ' Population aged 60+
> years old (porcentage)', ' 10.2516']
> []
> Justo mando esto cuando Darío me respondió. Saludos
>
> El dom., 19 jul. 2020 a las 16:22, Lemarchand Barker
> (lemarchand8...@gmail.com) escribió:
>
> > Buenas, estoy leyendo un csv, al principio no me leía, hasta que logré que 
> > lo haga, pero el problema viene cuando lee. Me muestra el resultado y al 
> > final me da un mensaje de error.
> > El código es el siguiente:
> > import csv
> >
> > with open('SYB62_1_201907_Population_Surface_Area_and_Density.csv', 
> > newline='') as File:
> >
> > =
> >
> > with open('population.csv', 'rt') as File:
> > reader = csv.reader(File)
> > for row in reader:
> > print(row)
> > La salida es la siguiente:
> > ['188', 'Costa Rica', '2005', 'Population mid-year estimates for females 
> > (millions)', '2.1369', '', 'United Nations Population Division, New York, 
> > World Population Prospects: The 2019 Revision, last accessed June 2019.']
> > ['188', 'Costa Rica', '2005', 'Sex ratio (males per 100 females)', 
> > '100.5460', '', 'United Nations Population Division, New York, World 
> > Population Prospects: The 2019 Revision; supplemented by data from the 
> > United Nations Statistics Division, New York, Demographic Yearbook 2015 and 
> > Secretariat for the Pacific Community (SPC) for small countries or areas, 
> > last accessed 

Re: [Python-es] [Consulta] Leer csv

2020-07-19 Por tema Lemarchand Barker
Estoy probando copiar un poco de la data del csv, lo pasé a un editor
y el código funcionó perfecto. No se si el archivo original tendrá
algún inconveniente, mi código o funciona porque copié una parte de la
info y no todo el resto.
Adjunto el archivito que hice, el código no lo toqué, lo único que
hice fue comentar la línea del with para colocar el nombre nuevo, y
quedó así:

with open('demo.csv', 'rt') as File:

Y la salida es la siguiente:
['T02 Region/Contry/Area', ' Population density and surface area', '
Year', ' Series', ' Value']
['1', ' Total all countries or areas', ' 2005', ' Population mid-year
estimates (millions)', ' 6541.9070']
['1', ' Total all countries or areas', ' 2005', ' Population mid-year
estimates for males (millions)', ' 3296.4853']
['1', ' Total all countries or areas', ' 2005', ' Population mid-year
estimates for females (millions)', ' 3245.4217']
['1', ' Total all countries or areas', ' 2005', ' Sex ratio (males per
100 females)', ' 101.5734']
['1', ' Total all countries or areas', ' 2005', ' Population aged 0 to
14 years old (porcentage)', ' 28.1425']
['1', ' Total all countries or areas', ' 2005', ' Population aged 60+
years old (porcentage)', ' 10.2516']
[]
Justo mando esto cuando Darío me respondió. Saludos


El dom., 19 jul. 2020 a las 16:22, Lemarchand Barker
() escribió:
>
> Buenas, estoy leyendo un csv, al principio no me leía, hasta que logré que lo 
> haga, pero el problema viene cuando lee. Me muestra el resultado y al final 
> me da un mensaje de error.
>
> El código es el siguiente:
>
> import csv
>
> # with open('SYB62_1_201907_Population_Surface_Area_and_Density.csv', 
> newline='') as File:
> with open('population.csv', 'rt') as File:
> reader = csv.reader(File)
> for row in reader:
> print(row)
>
> La salida es la siguiente:
>
> ['188', 'Costa Rica', '2005', 'Population mid-year estimates for females 
> (millions)', '2.1369', '', 'United Nations Population Division, New York, 
> World Population Prospects: The 2019 Revision, last accessed June 2019.']
> ['188', 'Costa Rica', '2005', 'Sex ratio (males per 100 females)', 
> '100.5460', '', 'United Nations Population Division, New York, World 
> Population Prospects: The 2019 Revision; supplemented by data from the United 
> Nations Statistics Division, New York, Demographic Yearbook 2015 and 
> Secretariat for the Pacific Community (SPC) for small countries or areas, 
> last accessed June 2019.']
> Traceback (most recent call last):
>   File "/home/raiden/Programacion/curso/ejercicios/testcsv.py", line 6, in 
> 
> for row in reader:
>   File "/usr/lib/python3.8/codecs.py", line 322, in decode
> (result, consumed) = self._buffer_decode(data, self.errors, final)
> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf4 in position 6529: 
> invalid continuation byte
>
> Solo copié un fragmento de toda la salida; lo que se ve antes del Traceback; 
> porque es bastante extenso el texto. Otra cosa que hice fue cambiarle el 
> nombre, porque era muy extenso el original.
>
> Al abrir el archivo con la planilla de cálculo la línea 6529, es la siguiente:
> 760 Syrian Arab Republic 2010 Population aged 0 to 14 years old (percentage) 
> 37.3903
>
> El contenido del csv se puede ver en este link (formato pdf): pdf
> El original se encuentra acá: http://data.un.org/
> El csv es desde la izquierda, la primer columna, donde dice:
>
> Population, surface area and density
> PDF | CSV   Updated: 23-Jul-2019
>
> Perdón la ignorancia pero no se que puede ser lo que me esté generando esa 
> salida de Unicode.
> Saludos, gracias
T02 Region/Contry/Area, Population density and surface area, Year, Series, Value
1, Total all countries or areas, 2005, Population mid-year estimates (millions), 6541.9070
1, Total all countries or areas, 2005, Population mid-year estimates for males (millions), 3296.4853
1, Total all countries or areas, 2005, Population mid-year estimates for females (millions), 3245.4217
1, Total all countries or areas, 2005, Sex ratio (males per 100 females), 101.5734
1, Total all countries or areas, 2005, Population aged 0 to 14 years old (porcentage), 28.1425
1, Total all countries or areas, 2005, Population aged 60+ years old (porcentage), 10.2516

___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Leer csv

2020-07-19 Por tema Darío vía Python-es
> Buenas, estoy leyendo un csv, al principio no me leía, hasta que logré que lo 
> haga, pero el problema viene cuando lee. Me muestra el resultado y al final 
> me da un mensaje de error.

Hola, no te conviene leerlo usando pandas, es bastante más simple, si archivo 
es el nombre del csv, o sea archivo.csv:
import pandas as pd

leer = pd.read_csv('ruta/archivo.csv')
# si querés ver los nombres de columna:
leer.columns
# si querés ver los últimos diez valores
leer.tail(10)
# si querés ver los primeros 23 valores
leer.head(23)
# una columna específica
leer['nombre_columna']

también hay muchas más opciones si el csv tiene un índice específico como ser 
por fechas, o también indexar directamente por la columna específica que 
quieras, basta agregar index_col = # en pd.read_csv

Espero te sirva, pandas para este tipo de archivos es ideal.

Saludos!

> El código es el siguiente:
>
> import csv
>
> # with open('SYB62_1_201907_Population_Surface_Area_and_Density.csv', 
> newline='') as File:
> with open('population.csv', 'rt') as File:
> reader = csv.reader(File)
> for row in reader:
> print(row)
>
> La salida es la siguiente:
>
> ['188', 'Costa Rica', '2005', 'Population mid-year estimates for females 
> (millions)', '2.1369', '', 'United Nations Population Division, New York, 
> World Population Prospects: The 2019 Revision, last accessed June 2019.']
> ['188', 'Costa Rica', '2005', 'Sex ratio (males per 100 females)', 
> '100.5460', '', 'United Nations Population Division, New York, World 
> Population Prospects: The 2019 Revision; supplemented by data from the United 
> Nations Statistics Division, New York, Demographic Yearbook 2015 and 
> Secretariat for the Pacific Community (SPC) for small countries or areas, 
> last accessed June 2019.']
> Traceback (most recent call last):
> File "/home/raiden/Programacion/curso/ejercicios/testcsv.py", line 6, in 
> 
> for row in reader:
> File "/usr/lib/python3.8/codecs.py", line 322, in decode
> (result, consumed) = self._buffer_decode(data, self.errors, final)
> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf4 in position 6529: 
> invalid continuation byte
>
> Solo copié un fragmento de toda la salida; lo que se ve antes del Traceback; 
> porque es bastante extenso el texto. Otra cosa que hice fue cambiarle el 
> nombre, porque era muy extenso el original.
>
> Al abrir el archivo con la planilla de cálculo la línea 6529, es la siguiente:
>
> 760   Syrian Arab Republic2010Population aged 0 to 14 years old 
> (percentage)  37.3903
>
> El contenido del csv se puede ver en este link (formato pdf): 
> [pdf](http://data.un.org/_Docs/SYB/PDFs/SYB62_1_201907_Population,%20Surface%20Area%20and%20Density.pdf)
> El original se encuentra acá: http://data.un.org/
> El csv es desde la izquierda, la primer columna, donde dice: - Population, 
> surface area and density
> - [PDF](http://data.un.org/_Docs/SYB/PDFs/SYB62_1_201907_Population, Surface 
> Area and Density.pdf) | 
> [CSV](http://data.un.org/_Docs/SYB/CSV/SYB62_1_201907_Population, Surface 
> Area and Density.csv) Updated: 23-Jul-2019
>
> Perdón la ignorancia pero no se que puede ser lo que me esté generando esa 
> salida de Unicode.
> Saludos, gracias___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] Leer csv

2020-07-19 Por tema Lemarchand Barker
Buenas, estoy leyendo un csv, al principio no me leía, hasta que logré que
lo haga, pero el problema viene cuando lee. Me muestra el resultado y al
final me da un mensaje de error.

El código es el siguiente:

import csv

# with open('SYB62_1_201907_Population_Surface_Area_and_Density.csv',
newline='') as File:
with open('population.csv', 'rt') as File:
reader = csv.reader(File)
for row in reader:
print(row)

La salida es la siguiente:

['188', 'Costa Rica', '2005', 'Population mid-year estimates for females
(millions)', '2.1369', '', 'United Nations Population Division, New York,
World Population Prospects: The 2019 Revision, last accessed June 2019.']
['188', 'Costa Rica', '2005', 'Sex ratio (males per 100 females)',
'100.5460', '', 'United Nations Population Division, New York, World
Population Prospects: The 2019 Revision; supplemented by data from the
United Nations Statistics Division, New York, Demographic Yearbook 2015 and
Secretariat for the Pacific Community (SPC) for small countries or areas,
last accessed June 2019.']
Traceback (most recent call last):
  File "/home/raiden/Programacion/curso/ejercicios/testcsv.py", line 6, in

for row in reader:
  File "/usr/lib/python3.8/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf4 in position 6529:
invalid continuation byte

Solo copié un fragmento de toda la salida; lo que se ve antes del
Traceback; porque es bastante extenso el texto. Otra cosa que hice fue
cambiarle el nombre, porque era muy extenso el original.

Al abrir el archivo con la planilla de cálculo la línea 6529, es la
siguiente:
760 Syrian Arab Republic 2010 Population aged 0 to 14 years old (percentage)
37.3903

El contenido del csv se puede ver en este link (formato pdf): pdf

El original se encuentra acá: http://data.un.org/
El csv es desde la izquierda, la primer columna, donde dice:
- Population, surface area and density
- PDF  | CSV
   Updated: 23-Jul-2019
Perdón la ignorancia pero no se que puede ser lo que me esté generando esa
salida de Unicode.
Saludos, gracias
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] max() y min()

2020-07-18 Por tema lemarchand8679
Impecable Ricardo, muchísimas gracias.Si bien me sirve increíblemente conocer 
las diferencias entre ambos y saber sus posibles aplicaciones, con: 
cadena.count() ya me es suficiente. GraciasEnviado desde mi smartphone Samsung 
Galaxy.
 Mensaje original De: Ricardo Cárdenes 
 Fecha: 16/7/20  18:37  (GMT-03:00) A: La lista de 
python en castellano  Asunto: Re: [Python-es] [Consulta] 
max() y min() La principal diferencia está en cómo se cuentan las cosas. 
Esto:va = cadena.count('a')recorre la cadena entera buscando únicamente la 
letra "a". Y te devuelve la cuenta. Luego repites la operación con la "e" y hay 
que recorrer la cadena entera otra vez. Y luego repites con la "i" y hay que 
repetir toda la operación de nuevo. Así con cada letra que busques.Esto 
otro:cuentas = Counter(cadena.lower())recorre la cadena una única vez y te 
devuelve un diccionario con la cuenta de repeticiones de cada uno de los 
caracteres distintos en la cadena.Pros y contras:El método count estará 
optimizado para buscar subcadenas. Además, se concentra en contar una sola, así 
que realiza menos operaciones. Sería el ideal para buscar una única letra. Es 
la única opción que tienes si quieres buscar subcadenas de más de una letra 
(Counter cuenta elementos separados, únicamente).Counter es más genérico: sirve 
no sólo para cadenas sino para cualquier tipo de secuencia (listas, tuplas, 
...) Su gran ventaja es que sólo lo ejecutas una vez y ya has contado todo.Por 
tanto, escoger cual usar depende de lo que estés haciendo. Si vas a buscar más 
de un carácter, a tamaños de cadena que no sean gigantescos, probablemente no 
vaya a haber una gran diferencia y es posible que count sea más rápido.Si estás 
buscando muchos caracteres diferentes y, especialmente, si las cadenas son muy 
largas, entonces Counter empieza a ser más conveniente y más rápido en general 
por la simple razón de que sólo vas a necesitar recorrer la secuencia una 
vez.La desventaja principal de Counter es que, mientras count te devuelve un 
simple entero, el objeto devuelto por Counter ocupa memoria proporcionalmente 
al número de elementos distintos que haya en la secuencia. Si esto va a ser un 
problema o no depende de tus datos y de la cantidad de memoria de que 
dispongas.Pero yo no me centraría en asuntos de rendimiento en este momento, 
principalmente cuando parece que aún no dominas el lenguaje. Quitando eso, la 
ventaja principal de Counter es que es mucho más ágil cuando necesitas contar 
muchas cosas diferentes y cuando no sabes a priori qué vas a necesitar 
contar.On Thu, Jul 16, 2020 at 4:53 AM Lemarchand Barker 
 wrote:Buenas, estoy viendo las opciones que me 
dieron con count().
Ahora viene mi pregunta, cuál sería la diferencia entre lo que me recomendó:
Juan José:
va = cadena.count('a')

Y lo que dijo:
Ricardo:

>>> from collections import Counter
>>> cuentas = Counter(cadena.lower())
>>> va = cuentas.get('a', 0)
>>> ve = cuentas.get('e', 0)
>>> va
10
>>> ve
7

Gracias, saludos

El mié., 15 jul. 2020 a las 21:49, lemarchand8679
() escribió:
>
> Mañana lo reviso también, muchas gracias
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>
>  Mensaje original 
> De: Ricardo Cárdenes 
> Fecha: 15/7/20 21:10 (GMT-03:00)
> A: La lista de python en castellano 
> Asunto: Re: [Python-es] [Consulta] max() y min()
>
> Te voy a dar una mejor:
>
> >>> from collections import Counter
> >>> cuentas = Counter(cadena.lower())
> >>> va = cuentas.get('a', 0)
> >>> ve = cuentas.get('e', 0)
> >>> va
> 10
> >>> ve
> 7
>
>
> Tras ejecutar la segunda línea, cuentas es un objeto con la misma interfaz 
> que un diccionario.
>
> Observa que pasé cadena.lower() a Counter, pensando que quieres todas las 
> vocales, no sólo las minúsculas. Adáptalo según necesites.
>
> On Wed, Jul 15, 2020 at 11:08 AM Lemarchand Barker  
> wrote:
>>
>> Lo voy a buscar y voy a ver.
>> Muchas gracias
>>
>> El mié., 15 jul. 2020 a las 18:03, Juan José Gómez Romera
>> () escribió:
>> >
>> > Hola, como uso te hace la función q necesitas, yo sin embargo recortaria 
>> > código usando count:
>> >
>> > va = cadena.count('a')
>> > ...
>> >
>> > Perdón por ser tan parco con el código, estoy desde móvil.
>> >
>> >
>> >
>> >
>> > El mié., 15 jul. 2020 22:28, Lemarchand Barker  
>> > escribió:
>> >>
>> >> Hola, vengo con otra pregunta tonta.
>> >> Estaba jugando con for, la típica de buscar máximos y mínimos, les
>> >> dejo el código:
>> >>
>> >> lista = []
>> >>
>> >> cad

Re: [Python-es] [Consulta] max() y min()

2020-07-16 Por tema Ricardo Cárdenes
La principal diferencia está en cómo se cuentan las cosas. Esto:

va = cadena.count('a')


recorre la cadena entera buscando únicamente la letra "a". Y te devuelve la
cuenta. Luego repites la operación con la "e" y hay que recorrer la cadena
entera otra vez. Y luego repites con la "i" y hay que repetir toda la
operación de nuevo. Así con cada letra que busques.

Esto otro:

cuentas = Counter(cadena.lower())


recorre la cadena una única vez y te devuelve un diccionario con la cuenta
de repeticiones *de cada uno de los caracteres distintos en la cadena*.

*Pros y contras*:

El método count estará optimizado para buscar subcadenas. Además, se
concentra en contar una sola, así que realiza menos operaciones. Sería el
ideal para buscar una única letra. Es la única opción que tienes si quieres
buscar subcadenas de más de una letra (Counter cuenta elementos separados,
únicamente).

Counter es más genérico: sirve no sólo para cadenas sino para cualquier
tipo de secuencia (listas, tuplas, ...) Su gran ventaja es que sólo lo
ejecutas una vez y ya has contado *todo*.

Por tanto, escoger cual usar depende de lo que estés haciendo. Si vas a
buscar más de un carácter, a tamaños de cadena que no sean gigantescos,
probablemente no vaya a haber una gran diferencia y es posible que count
sea más rápido.

Si estás buscando muchos caracteres diferentes y, especialmente, si las
cadenas son muy largas, entonces Counter empieza a ser más conveniente y
más rápido en general por la simple razón de que *sólo vas a necesitar
recorrer la secuencia una vez*.

La desventaja principal de Counter es que, mientras count te devuelve un
simple entero, el objeto devuelto por Counter ocupa memoria
proporcionalmente al número de elementos distintos que haya en la
secuencia. Si esto va a ser un problema o no depende de tus datos y de la
cantidad de memoria de que dispongas.

Pero yo no me centraría en asuntos de rendimiento en este momento,
principalmente cuando parece que aún no dominas el lenguaje. Quitando eso,
la ventaja principal de Counter es que es mucho más ágil cuando necesitas
contar muchas cosas diferentes y cuando no sabes a priori qué vas a
necesitar contar.

On Thu, Jul 16, 2020 at 4:53 AM Lemarchand Barker 
wrote:

> Buenas, estoy viendo las opciones que me dieron con count().
> Ahora viene mi pregunta, cuál sería la diferencia entre lo que me
> recomendó:
> Juan José:
> va = cadena.count('a')
>
> Y lo que dijo:
> Ricardo:
>
> >>> from collections import Counter
> >>> cuentas = Counter(cadena.lower())
> >>> va = cuentas.get('a', 0)
> >>> ve = cuentas.get('e', 0)
> >>> va
> 10
> >>> ve
> 7
>
> Gracias, saludos
>
> El mié., 15 jul. 2020 a las 21:49, lemarchand8679
> () escribió:
> >
> > Mañana lo reviso también, muchas gracias
> >
> >
> >
> > Enviado desde mi smartphone Samsung Galaxy.
> >
> >
> >  Mensaje original 
> > De: Ricardo Cárdenes 
> > Fecha: 15/7/20 21:10 (GMT-03:00)
> > A: La lista de python en castellano 
> > Asunto: Re: [Python-es] [Consulta] max() y min()
> >
> > Te voy a dar una mejor:
> >
> > >>> from collections import Counter
> > >>> cuentas = Counter(cadena.lower())
> > >>> va = cuentas.get('a', 0)
> > >>> ve = cuentas.get('e', 0)
> > >>> va
> > 10
> > >>> ve
> > 7
> >
> >
> > Tras ejecutar la segunda línea, cuentas es un objeto con la misma
> interfaz que un diccionario.
> >
> > Observa que pasé cadena.lower() a Counter, pensando que quieres todas
> las vocales, no sólo las minúsculas. Adáptalo según necesites.
> >
> > On Wed, Jul 15, 2020 at 11:08 AM Lemarchand Barker <
> lemarchand8...@gmail.com> wrote:
> >>
> >> Lo voy a buscar y voy a ver.
> >> Muchas gracias
> >>
> >> El mié., 15 jul. 2020 a las 18:03, Juan José Gómez Romera
> >> () escribió:
> >> >
> >> > Hola, como uso te hace la función q necesitas, yo sin embargo
> recortaria código usando count:
> >> >
> >> > va = cadena.count('a')
> >> > ...
> >> >
> >> > Perdón por ser tan parco con el código, estoy desde móvil.
> >> >
> >> >
> >> >
> >> >
> >> > El mié., 15 jul. 2020 22:28, Lemarchand Barker <
> lemarchand8...@gmail.com> escribió:
> >> >>
> >> >> Hola, vengo con otra pregunta tonta.
> >> >> Estaba jugando con for, la típica de buscar máximos y mínimos, les
> >> >> dejo el código:
> >> >>
> >> >> lista = []
> >> >>
> >&

Re: [Python-es] [Consulta] max() y min()

2020-07-16 Por tema lemarchand8679
Muchas gracias Sebastián. Tomo notaEnviado desde mi smartphone Samsung Galaxy.
 Mensaje original De: Sebastián Arancibia  
Fecha: 16/7/20  15:18  (GMT-03:00) A: La lista de python en castellano 
 Asunto: Re: [Python-es] [Consulta] max() y min() El 
ejemplo de Juan José usa un método de la clase string (

https://www.w3schools.com/python/python_ref_string.asp  ) mientras que el de 
Ricardo importa la clase Counter del módulo collections. Si no me equivoco, la 
clase Counter te permite contar cualquier tipo de objeto, a diferencia del 
count() de la clase string que solo te cuenta un determinado caracter o string 
dentro de una cadena. Esa es la diferencia.On Thu, Jul 16, 2020 at 10:53 AM 
Lemarchand Barker  wrote:Buenas, estoy viendo las 
opciones que me dieron con count().
Ahora viene mi pregunta, cuál sería la diferencia entre lo que me recomendó:
Juan José:
va = cadena.count('a')

Y lo que dijo:
Ricardo:

>>> from collections import Counter
>>> cuentas = Counter(cadena.lower())
>>> va = cuentas.get('a', 0)
>>> ve = cuentas.get('e', 0)
>>> va
10
>>> ve
7

Gracias, saludos

El mié., 15 jul. 2020 a las 21:49, lemarchand8679
() escribió:
>
> Mañana lo reviso también, muchas gracias
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>
>  Mensaje original 
> De: Ricardo Cárdenes 
> Fecha: 15/7/20 21:10 (GMT-03:00)
> A: La lista de python en castellano 
> Asunto: Re: [Python-es] [Consulta] max() y min()
>
> Te voy a dar una mejor:
>
> >>> from collections import Counter
> >>> cuentas = Counter(cadena.lower())
> >>> va = cuentas.get('a', 0)
> >>> ve = cuentas.get('e', 0)
> >>> va
> 10
> >>> ve
> 7
>
>
> Tras ejecutar la segunda línea, cuentas es un objeto con la misma interfaz 
> que un diccionario.
>
> Observa que pasé cadena.lower() a Counter, pensando que quieres todas las 
> vocales, no sólo las minúsculas. Adáptalo según necesites.
>
> On Wed, Jul 15, 2020 at 11:08 AM Lemarchand Barker  
> wrote:
>>
>> Lo voy a buscar y voy a ver.
>> Muchas gracias
>>
>> El mié., 15 jul. 2020 a las 18:03, Juan José Gómez Romera
>> () escribió:
>> >
>> > Hola, como uso te hace la función q necesitas, yo sin embargo recortaria 
>> > código usando count:
>> >
>> > va = cadena.count('a')
>> > ...
>> >
>> > Perdón por ser tan parco con el código, estoy desde móvil.
>> >
>> >
>> >
>> >
>> > El mié., 15 jul. 2020 22:28, Lemarchand Barker  
>> > escribió:
>> >>
>> >> Hola, vengo con otra pregunta tonta.
>> >> Estaba jugando con for, la típica de buscar máximos y mínimos, les
>> >> dejo el código:
>> >>
>> >> lista = []
>> >>
>> >> cadena = "Esto es una cadena que contiene varias letras y muchas palabras"
>> >>
>> >> vocales = ['a', 'e', 'i', 'o', 'u']
>> >>
>> >> for x in cadena:
>> >>     if x == 'a':
>> >>         va = va + 1
>> >>     elif x == 'e':
>> >>         ve = ve + 1
>> >>     elif x == 'i':
>> >>         vi = vi + 1
>> >>     elif x == 'o':
>> >>         vo = vo + 1
>> >>     elif x == 'u':
>> >>         vu = vu + 1
>> >>
>> >> lista.append(va)
>> >> lista.append(ve)
>> >> lista.append(vi)
>> >> lista.append(vo)
>> >> lista.append(vu)
>> >>
>> >> total = va + ve + vi + vo + vu
>> >>
>> >> max_item = max(lista, key=int)
>> >> min_item = min(lista, key=int)
>> >> print(f"Mayor: {max_item}")
>> >> print(f"Menor: {min_item}")
>> >>
>> >> Bueno mi consulta es la siguiente, está bien que haya utilizado max y
>> >> min para tratar de buscar cuál es la vocal que más se repite y menos
>> >> se repite? Pero el tema es el siguiente hay 2 vocales que se repiten
>> >> solamente 2 veces, que son: i y o. Asumo que por el orden de los
>> >> elementos en la lista el 2 que muestra se corresponde a la i.
>> >> Bueno eso es todo, consultar si está bien utilizado el max y el min,
>> >> saludos y gracias.
>> >> ___
>> >> Python-es mailing list
>> >> Python-es@python.org
>> >> https://mail.python.org/mailman/listinfo/python-es
>> >
>> > ___
>> > Python-es mailing list
>> > Python-es@python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] max() y min()

2020-07-16 Por tema Sebastián Arancibia
El ejemplo de Juan José usa un método de la clase string (
https://www.w3schools.com/python/python_ref_string.asp  ) mientras que el
de Ricardo importa la clase Counter del módulo collections. Si no me
equivoco, la clase Counter te permite contar cualquier tipo de objeto, a
diferencia del count() de la clase string que solo te cuenta un determinado
caracter o string dentro de una cadena. Esa es la diferencia.

On Thu, Jul 16, 2020 at 10:53 AM Lemarchand Barker 
wrote:

> Buenas, estoy viendo las opciones que me dieron con count().
> Ahora viene mi pregunta, cuál sería la diferencia entre lo que me
> recomendó:
> Juan José:
> va = cadena.count('a')
>
> Y lo que dijo:
> Ricardo:
>
> >>> from collections import Counter
> >>> cuentas = Counter(cadena.lower())
> >>> va = cuentas.get('a', 0)
> >>> ve = cuentas.get('e', 0)
> >>> va
> 10
> >>> ve
> 7
>
> Gracias, saludos
>
> El mié., 15 jul. 2020 a las 21:49, lemarchand8679
> () escribió:
> >
> > Mañana lo reviso también, muchas gracias
> >
> >
> >
> > Enviado desde mi smartphone Samsung Galaxy.
> >
> >
> > ---- Mensaje original 
> > De: Ricardo Cárdenes 
> > Fecha: 15/7/20 21:10 (GMT-03:00)
> > A: La lista de python en castellano 
> > Asunto: Re: [Python-es] [Consulta] max() y min()
> >
> > Te voy a dar una mejor:
> >
> > >>> from collections import Counter
> > >>> cuentas = Counter(cadena.lower())
> > >>> va = cuentas.get('a', 0)
> > >>> ve = cuentas.get('e', 0)
> > >>> va
> > 10
> > >>> ve
> > 7
> >
> >
> > Tras ejecutar la segunda línea, cuentas es un objeto con la misma
> interfaz que un diccionario.
> >
> > Observa que pasé cadena.lower() a Counter, pensando que quieres todas
> las vocales, no sólo las minúsculas. Adáptalo según necesites.
> >
> > On Wed, Jul 15, 2020 at 11:08 AM Lemarchand Barker <
> lemarchand8...@gmail.com> wrote:
> >>
> >> Lo voy a buscar y voy a ver.
> >> Muchas gracias
> >>
> >> El mié., 15 jul. 2020 a las 18:03, Juan José Gómez Romera
> >> () escribió:
> >> >
> >> > Hola, como uso te hace la función q necesitas, yo sin embargo
> recortaria código usando count:
> >> >
> >> > va = cadena.count('a')
> >> > ...
> >> >
> >> > Perdón por ser tan parco con el código, estoy desde móvil.
> >> >
> >> >
> >> >
> >> >
> >> > El mié., 15 jul. 2020 22:28, Lemarchand Barker <
> lemarchand8...@gmail.com> escribió:
> >> >>
> >> >> Hola, vengo con otra pregunta tonta.
> >> >> Estaba jugando con for, la típica de buscar máximos y mínimos, les
> >> >> dejo el código:
> >> >>
> >> >> lista = []
> >> >>
> >> >> cadena = "Esto es una cadena que contiene varias letras y muchas
> palabras"
> >> >>
> >> >> vocales = ['a', 'e', 'i', 'o', 'u']
> >> >>
> >> >> for x in cadena:
> >> >> if x == 'a':
> >> >> va = va + 1
> >> >> elif x == 'e':
> >> >> ve = ve + 1
> >> >> elif x == 'i':
> >> >> vi = vi + 1
> >> >> elif x == 'o':
> >> >> vo = vo + 1
> >> >> elif x == 'u':
> >> >> vu = vu + 1
> >> >>
> >> >> lista.append(va)
> >> >> lista.append(ve)
> >> >> lista.append(vi)
> >> >> lista.append(vo)
> >> >> lista.append(vu)
> >> >>
> >> >> total = va + ve + vi + vo + vu
> >> >>
> >> >> max_item = max(lista, key=int)
> >> >> min_item = min(lista, key=int)
> >> >> print(f"Mayor: {max_item}")
> >> >> print(f"Menor: {min_item}")
> >> >>
> >> >> Bueno mi consulta es la siguiente, está bien que haya utilizado max y
> >> >> min para tratar de buscar cuál es la vocal que más se repite y menos
> >> >> se repite? Pero el tema es el siguiente hay 2 vocales que se repiten
> >> >> solamente 2 veces, que son: i y o. Asumo que por el orden de los
> >> >> elementos en la lista el 2 que muestra se corresponde a la i.
> >> >> Bueno eso es todo, consultar si está bien utilizado el max y el min,
> >> >> saludos y gracias.
> >> >> ___
> >> >> Python-es mailing list
> >> >> Python-es@python.org
> >> >> https://mail.python.org/mailman/listinfo/python-es
> >> >
> >> > ___
> >> > Python-es mailing list
> >> > Python-es@python.org
> >> > https://mail.python.org/mailman/listinfo/python-es
> >> ___
> >> Python-es mailing list
> >> Python-es@python.org
> >> https://mail.python.org/mailman/listinfo/python-es
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] max() y min()

2020-07-16 Por tema Lemarchand Barker
Buenas, estoy viendo las opciones que me dieron con count().
Ahora viene mi pregunta, cuál sería la diferencia entre lo que me recomendó:
Juan José:
va = cadena.count('a')

Y lo que dijo:
Ricardo:

>>> from collections import Counter
>>> cuentas = Counter(cadena.lower())
>>> va = cuentas.get('a', 0)
>>> ve = cuentas.get('e', 0)
>>> va
10
>>> ve
7

Gracias, saludos

El mié., 15 jul. 2020 a las 21:49, lemarchand8679
() escribió:
>
> Mañana lo reviso también, muchas gracias
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>
>  Mensaje original 
> De: Ricardo Cárdenes 
> Fecha: 15/7/20 21:10 (GMT-03:00)
> A: La lista de python en castellano 
> Asunto: Re: [Python-es] [Consulta] max() y min()
>
> Te voy a dar una mejor:
>
> >>> from collections import Counter
> >>> cuentas = Counter(cadena.lower())
> >>> va = cuentas.get('a', 0)
> >>> ve = cuentas.get('e', 0)
> >>> va
> 10
> >>> ve
> 7
>
>
> Tras ejecutar la segunda línea, cuentas es un objeto con la misma interfaz 
> que un diccionario.
>
> Observa que pasé cadena.lower() a Counter, pensando que quieres todas las 
> vocales, no sólo las minúsculas. Adáptalo según necesites.
>
> On Wed, Jul 15, 2020 at 11:08 AM Lemarchand Barker  
> wrote:
>>
>> Lo voy a buscar y voy a ver.
>> Muchas gracias
>>
>> El mié., 15 jul. 2020 a las 18:03, Juan José Gómez Romera
>> () escribió:
>> >
>> > Hola, como uso te hace la función q necesitas, yo sin embargo recortaria 
>> > código usando count:
>> >
>> > va = cadena.count('a')
>> > ...
>> >
>> > Perdón por ser tan parco con el código, estoy desde móvil.
>> >
>> >
>> >
>> >
>> > El mié., 15 jul. 2020 22:28, Lemarchand Barker  
>> > escribió:
>> >>
>> >> Hola, vengo con otra pregunta tonta.
>> >> Estaba jugando con for, la típica de buscar máximos y mínimos, les
>> >> dejo el código:
>> >>
>> >> lista = []
>> >>
>> >> cadena = "Esto es una cadena que contiene varias letras y muchas palabras"
>> >>
>> >> vocales = ['a', 'e', 'i', 'o', 'u']
>> >>
>> >> for x in cadena:
>> >> if x == 'a':
>> >> va = va + 1
>> >> elif x == 'e':
>> >> ve = ve + 1
>> >> elif x == 'i':
>> >> vi = vi + 1
>> >> elif x == 'o':
>> >> vo = vo + 1
>> >> elif x == 'u':
>> >> vu = vu + 1
>> >>
>> >> lista.append(va)
>> >> lista.append(ve)
>> >> lista.append(vi)
>> >> lista.append(vo)
>> >> lista.append(vu)
>> >>
>> >> total = va + ve + vi + vo + vu
>> >>
>> >> max_item = max(lista, key=int)
>> >> min_item = min(lista, key=int)
>> >> print(f"Mayor: {max_item}")
>> >> print(f"Menor: {min_item}")
>> >>
>> >> Bueno mi consulta es la siguiente, está bien que haya utilizado max y
>> >> min para tratar de buscar cuál es la vocal que más se repite y menos
>> >> se repite? Pero el tema es el siguiente hay 2 vocales que se repiten
>> >> solamente 2 veces, que son: i y o. Asumo que por el orden de los
>> >> elementos en la lista el 2 que muestra se corresponde a la i.
>> >> Bueno eso es todo, consultar si está bien utilizado el max y el min,
>> >> saludos y gracias.
>> >> ___
>> >> Python-es mailing list
>> >> Python-es@python.org
>> >> https://mail.python.org/mailman/listinfo/python-es
>> >
>> > ___
>> > Python-es mailing list
>> > Python-es@python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] max() y min()

2020-07-15 Por tema lemarchand8679
Mañana lo reviso también, muchas graciasEnviado desde mi smartphone Samsung 
Galaxy.
 Mensaje original De: Ricardo Cárdenes 
 Fecha: 15/7/20  21:10  (GMT-03:00) A: La lista de 
python en castellano  Asunto: Re: [Python-es] [Consulta] 
max() y min() Te voy a dar una mejor:>>> from collections import Counter>>> 
cuentas = Counter(cadena.lower())>>> va = cuentas.get('a', 0)>>> ve = 
cuentas.get('e', 0)>>> va10>>> ve7Tras ejecutar la segunda línea, cuentas es un 
objeto con la misma interfaz que un diccionario.Observa que pasé cadena.lower() 
a Counter, pensando que quieres todas las vocales, no sólo las minúsculas. 
Adáptalo según necesites.On Wed, Jul 15, 2020 at 11:08 AM Lemarchand Barker 
 wrote:Lo voy a buscar y voy a ver.
Muchas gracias

El mié., 15 jul. 2020 a las 18:03, Juan José Gómez Romera
() escribió:
>
> Hola, como uso te hace la función q necesitas, yo sin embargo recortaria 
> código usando count:
>
> va = cadena.count('a')
> ...
>
> Perdón por ser tan parco con el código, estoy desde móvil.
>
>
>
>
> El mié., 15 jul. 2020 22:28, Lemarchand Barker  
> escribió:
>>
>> Hola, vengo con otra pregunta tonta.
>> Estaba jugando con for, la típica de buscar máximos y mínimos, les
>> dejo el código:
>>
>> lista = []
>>
>> cadena = "Esto es una cadena que contiene varias letras y muchas palabras"
>>
>> vocales = ['a', 'e', 'i', 'o', 'u']
>>
>> for x in cadena:
>>     if x == 'a':
>>         va = va + 1
>>     elif x == 'e':
>>         ve = ve + 1
>>     elif x == 'i':
>>         vi = vi + 1
>>     elif x == 'o':
>>         vo = vo + 1
>>     elif x == 'u':
>>         vu = vu + 1
>>
>> lista.append(va)
>> lista.append(ve)
>> lista.append(vi)
>> lista.append(vo)
>> lista.append(vu)
>>
>> total = va + ve + vi + vo + vu
>>
>> max_item = max(lista, key=int)
>> min_item = min(lista, key=int)
>> print(f"Mayor: {max_item}")
>> print(f"Menor: {min_item}")
>>
>> Bueno mi consulta es la siguiente, está bien que haya utilizado max y
>> min para tratar de buscar cuál es la vocal que más se repite y menos
>> se repite? Pero el tema es el siguiente hay 2 vocales que se repiten
>> solamente 2 veces, que son: i y o. Asumo que por el orden de los
>> elementos en la lista el 2 que muestra se corresponde a la i.
>> Bueno eso es todo, consultar si está bien utilizado el max y el min,
>> saludos y gracias.
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] max() y min()

2020-07-15 Por tema Ricardo Cárdenes
Te voy a dar una mejor:

>>> from collections import Counter
>>> cuentas = Counter(cadena.lower())
>>> va = cuentas.get('a', 0)
>>> ve = cuentas.get('e', 0)
>>> va
10
>>> ve
7


Tras ejecutar la segunda línea, cuentas es un objeto con la misma interfaz
que un diccionario.

Observa que pasé cadena.lower() a Counter, pensando que quieres todas las
vocales, no sólo las minúsculas. Adáptalo según necesites.

On Wed, Jul 15, 2020 at 11:08 AM Lemarchand Barker 
wrote:

> Lo voy a buscar y voy a ver.
> Muchas gracias
>
> El mié., 15 jul. 2020 a las 18:03, Juan José Gómez Romera
> () escribió:
> >
> > Hola, como uso te hace la función q necesitas, yo sin embargo recortaria
> código usando count:
> >
> > va = cadena.count('a')
> > ...
> >
> > Perdón por ser tan parco con el código, estoy desde móvil.
> >
> >
> >
> >
> > El mié., 15 jul. 2020 22:28, Lemarchand Barker 
> escribió:
> >>
> >> Hola, vengo con otra pregunta tonta.
> >> Estaba jugando con for, la típica de buscar máximos y mínimos, les
> >> dejo el código:
> >>
> >> lista = []
> >>
> >> cadena = "Esto es una cadena que contiene varias letras y muchas
> palabras"
> >>
> >> vocales = ['a', 'e', 'i', 'o', 'u']
> >>
> >> for x in cadena:
> >> if x == 'a':
> >> va = va + 1
> >> elif x == 'e':
> >> ve = ve + 1
> >> elif x == 'i':
> >> vi = vi + 1
> >> elif x == 'o':
> >> vo = vo + 1
> >> elif x == 'u':
> >> vu = vu + 1
> >>
> >> lista.append(va)
> >> lista.append(ve)
> >> lista.append(vi)
> >> lista.append(vo)
> >> lista.append(vu)
> >>
> >> total = va + ve + vi + vo + vu
> >>
> >> max_item = max(lista, key=int)
> >> min_item = min(lista, key=int)
> >> print(f"Mayor: {max_item}")
> >> print(f"Menor: {min_item}")
> >>
> >> Bueno mi consulta es la siguiente, está bien que haya utilizado max y
> >> min para tratar de buscar cuál es la vocal que más se repite y menos
> >> se repite? Pero el tema es el siguiente hay 2 vocales que se repiten
> >> solamente 2 veces, que son: i y o. Asumo que por el orden de los
> >> elementos en la lista el 2 que muestra se corresponde a la i.
> >> Bueno eso es todo, consultar si está bien utilizado el max y el min,
> >> saludos y gracias.
> >> ___
> >> Python-es mailing list
> >> Python-es@python.org
> >> https://mail.python.org/mailman/listinfo/python-es
> >
> > ___
> > Python-es mailing list
> > Python-es@python.org
> > https://mail.python.org/mailman/listinfo/python-es
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] max() y min()

2020-07-15 Por tema Lemarchand Barker
Lo voy a buscar y voy a ver.
Muchas gracias

El mié., 15 jul. 2020 a las 18:03, Juan José Gómez Romera
() escribió:
>
> Hola, como uso te hace la función q necesitas, yo sin embargo recortaria 
> código usando count:
>
> va = cadena.count('a')
> ...
>
> Perdón por ser tan parco con el código, estoy desde móvil.
>
>
>
>
> El mié., 15 jul. 2020 22:28, Lemarchand Barker  
> escribió:
>>
>> Hola, vengo con otra pregunta tonta.
>> Estaba jugando con for, la típica de buscar máximos y mínimos, les
>> dejo el código:
>>
>> lista = []
>>
>> cadena = "Esto es una cadena que contiene varias letras y muchas palabras"
>>
>> vocales = ['a', 'e', 'i', 'o', 'u']
>>
>> for x in cadena:
>> if x == 'a':
>> va = va + 1
>> elif x == 'e':
>> ve = ve + 1
>> elif x == 'i':
>> vi = vi + 1
>> elif x == 'o':
>> vo = vo + 1
>> elif x == 'u':
>> vu = vu + 1
>>
>> lista.append(va)
>> lista.append(ve)
>> lista.append(vi)
>> lista.append(vo)
>> lista.append(vu)
>>
>> total = va + ve + vi + vo + vu
>>
>> max_item = max(lista, key=int)
>> min_item = min(lista, key=int)
>> print(f"Mayor: {max_item}")
>> print(f"Menor: {min_item}")
>>
>> Bueno mi consulta es la siguiente, está bien que haya utilizado max y
>> min para tratar de buscar cuál es la vocal que más se repite y menos
>> se repite? Pero el tema es el siguiente hay 2 vocales que se repiten
>> solamente 2 veces, que son: i y o. Asumo que por el orden de los
>> elementos en la lista el 2 que muestra se corresponde a la i.
>> Bueno eso es todo, consultar si está bien utilizado el max y el min,
>> saludos y gracias.
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] max() y min()

2020-07-15 Por tema Juan José Gómez Romera
Hola, como uso te hace la función q necesitas, yo sin embargo recortaria
código usando count:

va = cadena.count('a')
...

Perdón por ser tan parco con el código, estoy desde móvil.




El mié., 15 jul. 2020 22:28, Lemarchand Barker 
escribió:

> Hola, vengo con otra pregunta tonta.
> Estaba jugando con for, la típica de buscar máximos y mínimos, les
> dejo el código:
>
> lista = []
>
> cadena = "Esto es una cadena que contiene varias letras y muchas palabras"
>
> vocales = ['a', 'e', 'i', 'o', 'u']
>
> for x in cadena:
> if x == 'a':
> va = va + 1
> elif x == 'e':
> ve = ve + 1
> elif x == 'i':
> vi = vi + 1
> elif x == 'o':
> vo = vo + 1
> elif x == 'u':
> vu = vu + 1
>
> lista.append(va)
> lista.append(ve)
> lista.append(vi)
> lista.append(vo)
> lista.append(vu)
>
> total = va + ve + vi + vo + vu
>
> max_item = max(lista, key=int)
> min_item = min(lista, key=int)
> print(f"Mayor: {max_item}")
> print(f"Menor: {min_item}")
>
> Bueno mi consulta es la siguiente, está bien que haya utilizado max y
> min para tratar de buscar cuál es la vocal que más se repite y menos
> se repite? Pero el tema es el siguiente hay 2 vocales que se repiten
> solamente 2 veces, que son: i y o. Asumo que por el orden de los
> elementos en la lista el 2 que muestra se corresponde a la i.
> Bueno eso es todo, consultar si está bien utilizado el max y el min,
> saludos y gracias.
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] max() y min()

2020-07-15 Por tema Lemarchand Barker
Hola, vengo con otra pregunta tonta.
Estaba jugando con for, la típica de buscar máximos y mínimos, les
dejo el código:

lista = []

cadena = "Esto es una cadena que contiene varias letras y muchas palabras"

vocales = ['a', 'e', 'i', 'o', 'u']

for x in cadena:
if x == 'a':
va = va + 1
elif x == 'e':
ve = ve + 1
elif x == 'i':
vi = vi + 1
elif x == 'o':
vo = vo + 1
elif x == 'u':
vu = vu + 1

lista.append(va)
lista.append(ve)
lista.append(vi)
lista.append(vo)
lista.append(vu)

total = va + ve + vi + vo + vu

max_item = max(lista, key=int)
min_item = min(lista, key=int)
print(f"Mayor: {max_item}")
print(f"Menor: {min_item}")

Bueno mi consulta es la siguiente, está bien que haya utilizado max y
min para tratar de buscar cuál es la vocal que más se repite y menos
se repite? Pero el tema es el siguiente hay 2 vocales que se repiten
solamente 2 veces, que son: i y o. Asumo que por el orden de los
elementos en la lista el 2 que muestra se corresponde a la i.
Bueno eso es todo, consultar si está bien utilizado el max y el min,
saludos y gracias.
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] pass y none

2020-07-14 Por tema lemarchand8679
Más claro imposible. Muchísimas gracias SebastiánEnviado desde mi smartphone 
Samsung Galaxy.
 Mensaje original De: Sebastián Arancibia  
Fecha: 14/7/20  11:56  (GMT-03:00) A: La lista de python en castellano 
 Asunto: Re: [Python-es] [Consulta] pass y none Hola,En 
términos prácticos, ambas son lo mismo.En términos más puristas, el pass es una 
declaración y el None es una expresión. ¿Qué quiere decir esto? El pass es una 
declaración vacía (similar a poner una función o método vacío en otros 
lenguajes, solo que en Python al ser indentado, si o si debes poner algo. El 
pass cumple la función equivalente). El None es una expresión que es evaluada, 
vale decir, toma un valor (en este caso None), solo que no lo estás asignando. 
Es equivalente a poner cualquier entero, string, etc, solo que el None equivale 
a un valor nulo.Saludos.On Tue, Jul 14, 2020 at 9:40 AM Lemarchand Barker 
 wrote:Hola, perdón la pregunta tonta pero quiero 
saber cuál es la diferencia entre poner por ejemplo:class name():    
noneY:class name():    passHay alguna diferencia realmente sustancial que me 
diga: en este caso usás pass y en otro caso none?Gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] pass y none

2020-07-14 Por tema Sebastián Arancibia
Hola,

En términos prácticos, ambas son lo mismo.
En términos más puristas, el pass es una declaración y el None es una
expresión. ¿Qué quiere decir esto? El pass es una declaración vacía
(similar a poner una función o método vacío en otros lenguajes, solo que en
Python al ser indentado, si o si debes poner algo. El pass cumple la
función equivalente). El None es una expresión que es evaluada, vale decir,
toma un valor (en este caso None), solo que no lo estás asignando. Es
equivalente a poner cualquier entero, string, etc, solo que el None
equivale a un valor nulo.

Saludos.

On Tue, Jul 14, 2020 at 9:40 AM Lemarchand Barker 
wrote:

> Hola, perdón la pregunta tonta pero quiero saber cuál es la diferencia
> entre poner por ejemplo:
> class name():
> none
> Y:
> class name():
> pass
> Hay alguna diferencia realmente sustancial que me diga: en este caso usás
> pass y en otro caso none?
> Gracias, saludos
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] pass y none

2020-07-14 Por tema Lemarchand Barker
Hola, perdón la pregunta tonta pero quiero saber cuál es la diferencia
entre poner por ejemplo:
class name():
none
Y:
class name():
pass
Hay alguna diferencia realmente sustancial que me diga: en este caso usás
pass y en otro caso none?
Gracias, saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Sobre keyerror

2020-07-08 Por tema lemarchand8679
Hola David, lo mismo pienso, siendo que seguí un código de una especie de space 
invaders, donde hay varios archivos .py, donde le indico a kivy que los cargue, 
están todos en la misma carpeta y funciona.Pero el hecho es que el error del 
main, no me figura.Enviado desde mi smartphone Samsung Galaxy.
 Mensaje original De: David Suárez vía Python-es 
 Fecha: 8/7/20  11:06  (GMT-03:00) A: La lista de python 
en castellano  CC: David Suárez  
Asunto: Re: [Python-es] [Consulta] Sobre keyerror Hola,ese no puede ser el 
error que había, pues a menos que explícitamente extraigas el nombre del 
archivo que estás ejecutando y lo uses para algo, a Python no le importa en 
absoluto el nombre del archivo.Si no hiciste ningún otro cambio y ahora 
funciona "mágicamente" entonces quizás el problema no estaba en tu código, sino 
en el servidor, que no estaba respondiendo adecuadamente. Es raro si se trata 
de un servicio bien establecido, pero te aseguro que pasa incluso con las APIs 
de Google o Twitter.Saludos,DavidEl mié., 8 de julio de 2020 7:22, Lemarchand 
Barker  escribió:Hola, estaba terminando un ejemplo 
en kivy y me pensé en el otro que hice, el del clima. Y si no me equivoco fue 
tan simple y tonta lo que; creo; fue la solución. El archivo se llamaba en mi 
caso: tiempo.py. Lo que hice fue cambiarlo a main.py y lo probé unas cuantas 
veces y funcionó.El código sigue intacto, solo cambié el nombre.SaludosEl lun., 
6 jul. 2020 a las 10:18, lemarchand8679 () 
escribió:Hola Sebastián, si para cada proyectito le creo una carpeta. Alguna 
que otra vez usé para debugear.También vi que le puedo decir a PyCharm que 
omita cosas que están bien y que me marca para que las arregle. Pero mi duda es 
la siguiente, si yo le digo que esa línea de código está bien, ese cambio 
aplica a lo que venga? Porque puede que por configurarlo así después no me 
marque cosas que me resulten importantes.SaludosEnviado desde mi smartphone 
Samsung Galaxy. Mensaje original De: Sebastián Arancibia 
 Fecha: 6/7/20  04:13  (GMT-03:00) A: La lista de python 
en castellano  Asunto: Re: [Python-es] [Consulta] Sobre 
keyerror Hola Verónica (y a todos),Ahora ya con las herramientas adecuadas, y 
ya que estás usando PyCharm, te recomiendo que incluyas tu desarrollo dentro de 
un main. Así podrás ejecutar y debuggear tu proyecto. Cuando incluyes todo 
dentro de un main puedes ejecutarlo con el botón "play", y arriba te sale el 
nombre del script y varios botones: play, debug, correr tests y uno de stop. El 
segundo te permite debuggear y puedes marcar puntos de quiebre al costado de 
cada linea. Abajo te salen los valores de las variables, es mucho más fácil a 
la hora de diagnosticar errores, ver los valores de las variables en todo 
momento y cosas así.Como aún no logro que me funcione la api key me sigue 
saliendo el mismo error de ayer, y se cae por eso. Después investigaré más y 
generaré otra api key para ver otros errores que aparezcan.Saludos. On Fri, Jul 
3, 2020 at 2:03 PM Alexis Roda  wrote:Haz 
este cambio:print(complete_url)  # <<< añade esta línearesponse = 
requests.get(complete_url)Copia/pega lo que sale por pantalla.Missatge de 
lemarchand8679  del dia dv., 3 de jul. 2020 a les 
19:40:Hice como me habían comentado antes, lo de hacer print en x. Lo hice y da 
el erroe de 401 el cual hace referencia a la api_key. Lo revisé y parece estar 
correcta, está validada y todo. Probé generando otra y lo mismo; 
keyerror.Enviado desde mi smartphone Samsung Galaxy. Mensaje original 
De: Alexis Roda  Fecha: 3/7/20  11:19 
 (GMT-03:00) A: La lista de python en castellano  Asunto: 
Re: [Python-es] [Consulta] Sobre keyerror Tiendo a dar demasiada información y 
perderme en detalles. La parte relevante de mi respuesta es cuando digo que el 
número 404 y la cadena "404" comparan como distintos. En Python, si comparas un 
número (un int) y una cadena (un str) el resultado es que siempre son 
distintos, independientemente de su valor. Esto implica que la rama del else 
jamás se ejecuta, no importa qué código de respuesta devuelve la API, siempre 
se ejecuta la rama del then. Esto es un problema cuando la respuesta es no-OK y 
no contiene la clave "main".Lo puedes confirmar fácilmente inspeccionando el 
valor de x. Si estoy en lo cierto verás algo como {"cod": 123, ...} no {"cod": 
"123",  ...}. La confirmación definitiva sería la documentación de la API, la 
especificación del formato de la respuesta.Con "la forma correcta" quería decir 
"la forma recomendada". requests ofrece mecanismos para hacer lo mismo de forma 
más sencilla y robusta. Ya que se importa se me hace extraño no 
aprovecharlos.También te recomiendo que revises la gestión de errores, parece 
frágil. Imagino que si el código de respuesta es distingo de 404 no significa 
necesariamente que la petición ha ido bien. Confirmalo con la docu

Re: [Python-es] [Consulta] Sobre keyerror

2020-07-08 Por tema David Suárez vía Python-es
Hola,

ese no puede ser el error que había, pues a menos que explícitamente
extraigas el nombre del archivo que estás ejecutando y lo uses para algo, a
Python no le importa en absoluto el nombre del archivo.

Si no hiciste ningún otro cambio y ahora funciona "mágicamente" entonces
quizás el problema no estaba en tu código, sino en el servidor, que no
estaba respondiendo adecuadamente. Es raro si se trata de un servicio bien
establecido, pero te aseguro que pasa incluso con las APIs de Google o
Twitter.

Saludos,
David

El mié., 8 de julio de 2020 7:22, Lemarchand Barker <
lemarchand8...@gmail.com> escribió:

> Hola, estaba terminando un ejemplo en kivy y me pensé en el otro que hice,
> el del clima. Y si no me equivoco fue tan simple y tonta lo que; creo; fue
> la solución. El archivo se llamaba en mi caso: tiempo.py. Lo que hice fue
> cambiarlo a main.py y lo probé unas cuantas veces y funcionó.
> El código sigue intacto, solo cambié el nombre.
> Saludos
>
> El lun., 6 jul. 2020 a las 10:18, lemarchand8679 (<
> lemarchand8...@gmail.com>) escribió:
>
>> Hola Sebastián, si para cada proyectito le creo una carpeta. Alguna que
>> otra vez usé para debugear.
>> También vi que le puedo decir a PyCharm que omita cosas que están bien y
>> que me marca para que las arregle. Pero mi duda es la siguiente, si yo le
>> digo que esa línea de código está bien, ese cambio aplica a lo que venga?
>> Porque puede que por configurarlo así después no me marque cosas que me
>> resulten importantes.
>> Saludos
>>
>>
>>
>> Enviado desde mi smartphone Samsung Galaxy.
>>
>>
>>  Mensaje original ----
>> De: Sebastián Arancibia 
>> Fecha: 6/7/20 04:13 (GMT-03:00)
>> A: La lista de python en castellano 
>> Asunto: Re: [Python-es] [Consulta] Sobre keyerror
>>
>> Hola Verónica (y a todos),
>>
>> Ahora ya con las herramientas adecuadas, y ya que estás usando PyCharm,
>> te recomiendo que incluyas tu desarrollo dentro de un main. Así podrás
>> ejecutar y debuggear tu proyecto. Cuando incluyes todo dentro de un main
>> puedes ejecutarlo con el botón "play", y arriba te sale el nombre del
>> script y varios botones: play, debug, correr tests y uno de stop. El
>> segundo te permite debuggear y puedes marcar puntos de quiebre al costado
>> de cada linea. Abajo te salen los valores de las variables, es mucho más
>> fácil a la hora de diagnosticar errores, ver los valores de las variables
>> en todo momento y cosas así.
>>
>> [image: image.png]
>>
>> Como aún no logro que me funcione la api key me sigue saliendo el mismo
>> error de ayer, y se cae por eso. Después investigaré más y generaré otra
>> api key para ver otros errores que aparezcan.
>>
>> Saludos.
>>
>>
>> On Fri, Jul 3, 2020 at 2:03 PM Alexis Roda <
>> alexis.roda.villalo...@gmail.com> wrote:
>>
>>> Haz este cambio:
>>>
>>> print(complete_url)  # <<< añade esta línea
>>> response = requests.get(complete_url)
>>>
>>>
>>> Copia/pega lo que sale por pantalla.
>>>
>>>
>>> Missatge de lemarchand8679  del dia dv., 3 de
>>> jul. 2020 a les 19:40:
>>>
>>>> Hice como me habían comentado antes, lo de hacer print en x. Lo hice y
>>>> da el erroe de 401 el cual hace referencia a la api_key. Lo revisé y parece
>>>> estar correcta, está validada y todo. Probé generando otra y lo mismo;
>>>> keyerror.
>>>>
>>>>
>>>>
>>>> Enviado desde mi smartphone Samsung Galaxy.
>>>>
>>>>
>>>>  Mensaje original 
>>>> De: Alexis Roda 
>>>> Fecha: 3/7/20 11:19 (GMT-03:00)
>>>> A: La lista de python en castellano 
>>>> Asunto: Re: [Python-es] [Consulta] Sobre keyerror
>>>>
>>>> Tiendo a dar demasiada información y perderme en detalles. La parte
>>>> relevante de mi respuesta es cuando digo que el número 404 y la cadena
>>>> "404" comparan como distintos. En Python, si comparas un número (un int) y
>>>> una cadena (un str) el resultado es que siempre son distintos,
>>>> independientemente de su valor. Esto implica que *la rama del else
>>>> jamás se ejecuta*, no importa qué código de respuesta devuelve la API,
>>>> siempre se ejecuta la rama del then. Esto es un problema cuando la
>>>> respuesta es no-OK y no contiene la clave "main".
>>>>
>>>> Lo puedes confirmar fácilmente inspeccionando el valor de x. S

Re: [Python-es] [Consulta] Sobre keyerror

2020-07-08 Por tema Lemarchand Barker
Hola, estaba terminando un ejemplo en kivy y me pensé en el otro que hice,
el del clima. Y si no me equivoco fue tan simple y tonta lo que; creo; fue
la solución. El archivo se llamaba en mi caso: tiempo.py. Lo que hice fue
cambiarlo a main.py y lo probé unas cuantas veces y funcionó.
El código sigue intacto, solo cambié el nombre.
Saludos

El lun., 6 jul. 2020 a las 10:18, lemarchand8679 ()
escribió:

> Hola Sebastián, si para cada proyectito le creo una carpeta. Alguna que
> otra vez usé para debugear.
> También vi que le puedo decir a PyCharm que omita cosas que están bien y
> que me marca para que las arregle. Pero mi duda es la siguiente, si yo le
> digo que esa línea de código está bien, ese cambio aplica a lo que venga?
> Porque puede que por configurarlo así después no me marque cosas que me
> resulten importantes.
> Saludos
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>
>  Mensaje original 
> De: Sebastián Arancibia 
> Fecha: 6/7/20 04:13 (GMT-03:00)
> A: La lista de python en castellano 
> Asunto: Re: [Python-es] [Consulta] Sobre keyerror
>
> Hola Verónica (y a todos),
>
> Ahora ya con las herramientas adecuadas, y ya que estás usando PyCharm, te
> recomiendo que incluyas tu desarrollo dentro de un main. Así podrás
> ejecutar y debuggear tu proyecto. Cuando incluyes todo dentro de un main
> puedes ejecutarlo con el botón "play", y arriba te sale el nombre del
> script y varios botones: play, debug, correr tests y uno de stop. El
> segundo te permite debuggear y puedes marcar puntos de quiebre al costado
> de cada linea. Abajo te salen los valores de las variables, es mucho más
> fácil a la hora de diagnosticar errores, ver los valores de las variables
> en todo momento y cosas así.
>
> [image: image.png]
>
> Como aún no logro que me funcione la api key me sigue saliendo el mismo
> error de ayer, y se cae por eso. Después investigaré más y generaré otra
> api key para ver otros errores que aparezcan.
>
> Saludos.
>
>
> On Fri, Jul 3, 2020 at 2:03 PM Alexis Roda <
> alexis.roda.villalo...@gmail.com> wrote:
>
>> Haz este cambio:
>>
>> print(complete_url)  # <<< añade esta línea
>> response = requests.get(complete_url)
>>
>>
>> Copia/pega lo que sale por pantalla.
>>
>>
>> Missatge de lemarchand8679  del dia dv., 3 de
>> jul. 2020 a les 19:40:
>>
>>> Hice como me habían comentado antes, lo de hacer print en x. Lo hice y
>>> da el erroe de 401 el cual hace referencia a la api_key. Lo revisé y parece
>>> estar correcta, está validada y todo. Probé generando otra y lo mismo;
>>> keyerror.
>>>
>>>
>>>
>>> Enviado desde mi smartphone Samsung Galaxy.
>>>
>>>
>>>  Mensaje original 
>>> De: Alexis Roda 
>>> Fecha: 3/7/20 11:19 (GMT-03:00)
>>> A: La lista de python en castellano 
>>> Asunto: Re: [Python-es] [Consulta] Sobre keyerror
>>>
>>> Tiendo a dar demasiada información y perderme en detalles. La parte
>>> relevante de mi respuesta es cuando digo que el número 404 y la cadena
>>> "404" comparan como distintos. En Python, si comparas un número (un int) y
>>> una cadena (un str) el resultado es que siempre son distintos,
>>> independientemente de su valor. Esto implica que *la rama del else
>>> jamás se ejecuta*, no importa qué código de respuesta devuelve la API,
>>> siempre se ejecuta la rama del then. Esto es un problema cuando la
>>> respuesta es no-OK y no contiene la clave "main".
>>>
>>> Lo puedes confirmar fácilmente inspeccionando el valor de x. Si estoy en
>>> lo cierto verás algo como {"cod": 123, ...} no {"cod": "123",  ...}. La
>>> confirmación definitiva sería la documentación de la API, la especificación
>>> del formato de la respuesta.
>>>
>>> Con "la forma correcta" quería decir "la forma recomendada". requests
>>> ofrece mecanismos para hacer lo mismo de forma más sencilla y robusta. Ya
>>> que se importa se me hace extraño no aprovecharlos.
>>>
>>> También te recomiendo que revises la gestión de errores, parece frágil.
>>> Imagino que si el código de respuesta es distingo de 404 no significa
>>> necesariamente que la petición ha ido bien. Confirmalo con la documentación
>>> de la API.
>>>
>>>
>>> Saludos
>>>
>>> Missatge de Lemarchand Barker  del dia dv., 3
>>> de jul. 2020 a les 13:36:
>>>
>>>> Buenas gracias a todos por sus aportes. Si, me ll

Re: [Python-es] [Consulta] Sobre keyerror

2020-07-06 Por tema lemarchand8679
Hola Sebastián, si para cada proyectito le creo una carpeta. Alguna que otra 
vez usé para debugear.También vi que le puedo decir a PyCharm que omita cosas 
que están bien y que me marca para que las arregle. Pero mi duda es la 
siguiente, si yo le digo que esa línea de código está bien, ese cambio aplica a 
lo que venga? Porque puede que por configurarlo así después no me marque cosas 
que me resulten importantes.SaludosEnviado desde mi smartphone Samsung Galaxy.
 Mensaje original De: Sebastián Arancibia  
Fecha: 6/7/20  04:13  (GMT-03:00) A: La lista de python en castellano 
 Asunto: Re: [Python-es] [Consulta] Sobre keyerror Hola 
Verónica (y a todos),Ahora ya con las herramientas adecuadas, y ya que estás 
usando PyCharm, te recomiendo que incluyas tu desarrollo dentro de un main. Así 
podrás ejecutar y debuggear tu proyecto. Cuando incluyes todo dentro de un main 
puedes ejecutarlo con el botón "play", y arriba te sale el nombre del script y 
varios botones: play, debug, correr tests y uno de stop. El segundo te permite 
debuggear y puedes marcar puntos de quiebre al costado de cada linea. Abajo te 
salen los valores de las variables, es mucho más fácil a la hora de 
diagnosticar errores, ver los valores de las variables en todo momento y cosas 
así.Como aún no logro que me funcione la api key me sigue saliendo el mismo 
error de ayer, y se cae por eso. Después investigaré más y generaré otra api 
key para ver otros errores que aparezcan.Saludos. On Fri, Jul 3, 2020 at 2:03 
PM Alexis Roda  wrote:Haz este 
cambio:print(complete_url)  # <<< añade esta línearesponse = 
requests.get(complete_url)Copia/pega lo que sale por pantalla.Missatge de 
lemarchand8679  del dia dv., 3 de jul. 2020 a les 
19:40:Hice como me habían comentado antes, lo de hacer print en x. Lo hice y da 
el erroe de 401 el cual hace referencia a la api_key. Lo revisé y parece estar 
correcta, está validada y todo. Probé generando otra y lo mismo; 
keyerror.Enviado desde mi smartphone Samsung Galaxy. Mensaje original 
De: Alexis Roda  Fecha: 3/7/20  11:19 
 (GMT-03:00) A: La lista de python en castellano  Asunto: 
Re: [Python-es] [Consulta] Sobre keyerror Tiendo a dar demasiada información y 
perderme en detalles. La parte relevante de mi respuesta es cuando digo que el 
número 404 y la cadena "404" comparan como distintos. En Python, si comparas un 
número (un int) y una cadena (un str) el resultado es que siempre son 
distintos, independientemente de su valor. Esto implica que la rama del else 
jamás se ejecuta, no importa qué código de respuesta devuelve la API, siempre 
se ejecuta la rama del then. Esto es un problema cuando la respuesta es no-OK y 
no contiene la clave "main".Lo puedes confirmar fácilmente inspeccionando el 
valor de x. Si estoy en lo cierto verás algo como {"cod": 123, ...} no {"cod": 
"123",  ...}. La confirmación definitiva sería la documentación de la API, la 
especificación del formato de la respuesta.Con "la forma correcta" quería decir 
"la forma recomendada". requests ofrece mecanismos para hacer lo mismo de forma 
más sencilla y robusta. Ya que se importa se me hace extraño no 
aprovecharlos.También te recomiendo que revises la gestión de errores, parece 
frágil. Imagino que si el código de respuesta es distingo de 404 no significa 
necesariamente que la petición ha ido bien. Confirmalo con la documentación de 
la API.SaludosMissatge de Lemarchand Barker  del dia 
dv., 3 de jul. 2020 a les 13:36:Buenas gracias a todos por sus aportes. Si, me 
llamo Verónica.En respuesta a Alexis, puede ser una forma incorrecta de 
realizar la consulta pero cuando hice copy-paste, al probar con distintas 
localidades funcionó. Tengo que mirar la info para desarrolladores que tiene 
más detenidamente, no es larga.Yo al 404 lo entiendo como el de page not found, 
de ahí que el else te diga que no encontró la ciudad. No encuentra la página 
con la información de esa localidad.El vie., 3 de jul. de 2020 04:33, Alexis 
Roda  escribió:Si python dice "KeyError: 
main" al ejecutar y = x["main"] es que x no tiene la clave "main". Averigua el 
valor de x, tal vez te dé una pista del problema.En el otro mensaje, al cambiar 
"main" por "cod" el error era "int value is not subscriptable" (o algo 
parecido), eso nos dice que el valor asociado a la clave "cod" es un número 
(habría que confirmarlo con la documentación de la API) pero el programa lo 
trata como una cadena (en el if x["cod"] != "404"). El número 404 y la cadena 
"404" comparan como distintos. No sé si tiene que ver con el KeyError main pero 
es un error que habría que corregir. Relacionado con esto, no parece buena idea 
asumir que si el código es distinto de 404 la petición ha ido bien. Asumiendo 
que sean códigos HTTP yo haría algo como: si c

[Python-es] [Consulta] Ejemplo con kivy

2020-07-04 Por tema Lemarchand Barker
Hola, sigo con kivy y en este caso estoy con un inconveniente que no me
tira un error.
Hice un ejemplo, ejecuta y todo pero no funciona.
El código es el siguiente:
archivo.py: layouts.py

archivo.kv: layouts.kv

Imagen de lo que se tendría que ver: output.png


Como comenté, no me tira ningún mensaje de error. Probé copiar y pegar el
código y nada. Esta es mi salida:

> /usr/bin/python3.8
> /home/raiden/Programacion/kivy/robertour/cap1/emb_layout/layouts.py
> [INFO   ] [Logger  ] Record log in
> /home/raiden/.kivy/logs/kivy_20-07-04_10.txt
> [INFO   ] [Kivy] v1.10.1
> [INFO   ] [Python  ] v3.8.2 (default, Apr 27 2020, 15:53:34)
> [GCC 9.3.0]
> [INFO   ] [Factory ] 194 symbols loaded
> [INFO   ] [ImageLoaderFFPy] Using ffpyplayer 4.3.1
> [INFO   ] [Image   ] Providers: img_tex, img_dds, img_sdl2, img_pil,
> img_ffpyplayer, img_gif

Voy a seguir con los ejemplos y después vuelvo a ese para ver que puede ser.
Saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Sobre keyerror

2020-07-03 Por tema Alexis Roda
Haz este cambio:

print(complete_url)  # <<< añade esta línea
response = requests.get(complete_url)


Copia/pega lo que sale por pantalla.


Missatge de lemarchand8679  del dia dv., 3 de
jul. 2020 a les 19:40:

> Hice como me habían comentado antes, lo de hacer print en x. Lo hice y da
> el erroe de 401 el cual hace referencia a la api_key. Lo revisé y parece
> estar correcta, está validada y todo. Probé generando otra y lo mismo;
> keyerror.
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
>
>  Mensaje original 
> De: Alexis Roda 
> Fecha: 3/7/20 11:19 (GMT-03:00)
> A: La lista de python en castellano 
> Asunto: Re: [Python-es] [Consulta] Sobre keyerror
>
> Tiendo a dar demasiada información y perderme en detalles. La parte
> relevante de mi respuesta es cuando digo que el número 404 y la cadena
> "404" comparan como distintos. En Python, si comparas un número (un int) y
> una cadena (un str) el resultado es que siempre son distintos,
> independientemente de su valor. Esto implica que *la rama del else jamás
> se ejecuta*, no importa qué código de respuesta devuelve la API, siempre
> se ejecuta la rama del then. Esto es un problema cuando la respuesta es
> no-OK y no contiene la clave "main".
>
> Lo puedes confirmar fácilmente inspeccionando el valor de x. Si estoy en
> lo cierto verás algo como {"cod": 123, ...} no {"cod": "123",  ...}. La
> confirmación definitiva sería la documentación de la API, la especificación
> del formato de la respuesta.
>
> Con "la forma correcta" quería decir "la forma recomendada". requests
> ofrece mecanismos para hacer lo mismo de forma más sencilla y robusta. Ya
> que se importa se me hace extraño no aprovecharlos.
>
> También te recomiendo que revises la gestión de errores, parece frágil.
> Imagino que si el código de respuesta es distingo de 404 no significa
> necesariamente que la petición ha ido bien. Confirmalo con la documentación
> de la API.
>
>
> Saludos
>
> Missatge de Lemarchand Barker  del dia dv., 3
> de jul. 2020 a les 13:36:
>
>> Buenas gracias a todos por sus aportes. Si, me llamo Verónica.
>> En respuesta a Alexis, puede ser una forma incorrecta de realizar la
>> consulta pero cuando hice copy-paste, al probar con distintas localidades
>> funcionó. Tengo que mirar la info para desarrolladores que tiene más
>> detenidamente, no es larga.
>> Yo al 404 lo entiendo como el de page not found, de ahí que el else te
>> diga que no encontró la ciudad. No encuentra la página con la información
>> de esa localidad.
>>
>>
>>
>> El vie., 3 de jul. de 2020 04:33, Alexis Roda <
>> alexis.roda.villalo...@gmail.com> escribió:
>>
>>> Si python dice "KeyError: main" al ejecutar y = x["main"] es que x no
>>> tiene la clave "main". Averigua el valor de x, tal vez te dé una pista del
>>> problema.
>>>
>>> En el otro mensaje, al cambiar "main" por "cod" el error era "int value
>>> is not subscriptable" (o algo parecido), eso nos dice que el valor asociado
>>> a la clave "cod" es un número (habría que confirmarlo con la documentación
>>> de la API) pero el programa lo trata como una cadena (en el if x["cod"]
>>> != "404"). El número 404 y la cadena "404" comparan como distintos. No
>>> sé si tiene que ver con el KeyError main pero es un error que habría que
>>> corregir. Relacionado con esto, no parece buena idea asumir que si el
>>> código es distinto de 404 la petición ha ido bien. Asumiendo que sean
>>> códigos HTTP yo haría algo como: si cod == 200 procesamiento ok sino si
>>> cod == 404 imprime "no encontrado" ... sino imprime "error desconocido".
>>>
>>> Me llama la atención que el script utilice el paquete requests para
>>> luego acabar construyendo la URL a mano. Por otro lado la URL que construye
>>> no parece muy correcta. Suponiendo que nombre_ciudad sea FOO:
>>>
>>> url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
>>> complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad
>>>
>>>
>>> al final complete_url vale
>>> http://api.openweathermap.org/data/2.5/weather?q=spappid=API_KEY=spFOO.
>>> Creo que deberia ser algo mas parecido a
>>> http://api.openweathermap.org/data/2.5/weather?q=FOO=API_KEY=sp
>>> .
>>>
>>> Usando requests de forma correcta te quitas problemas:
>>>
>>> url = "http://api.openwe

Re: [Python-es] [Consulta] Sobre keyerror

2020-07-03 Por tema lemarchand8679
Hice como me habían comentado antes, lo de hacer print en x. Lo hice y da el 
erroe de 401 el cual hace referencia a la api_key. Lo revisé y parece estar 
correcta, está validada y todo. Probé generando otra y lo mismo; 
keyerror.Enviado desde mi smartphone Samsung Galaxy.
 Mensaje original De: Alexis Roda 
 Fecha: 3/7/20  11:19  (GMT-03:00) A: La 
lista de python en castellano  Asunto: Re: [Python-es] 
[Consulta] Sobre keyerror Tiendo a dar demasiada información y perderme en 
detalles. La parte relevante de mi respuesta es cuando digo que el número 404 y 
la cadena "404" comparan como distintos. En Python, si comparas un número (un 
int) y una cadena (un str) el resultado es que siempre son distintos, 
independientemente de su valor. Esto implica que la rama del else jamás se 
ejecuta, no importa qué código de respuesta devuelve la API, siempre se ejecuta 
la rama del then. Esto es un problema cuando la respuesta es no-OK y no 
contiene la clave "main".Lo puedes confirmar fácilmente inspeccionando el valor 
de x. Si estoy en lo cierto verás algo como {"cod": 123, ...} no {"cod": "123", 
 ...}. La confirmación definitiva sería la documentación de la API, la 
especificación del formato de la respuesta.Con "la forma correcta" quería decir 
"la forma recomendada". requests ofrece mecanismos para hacer lo mismo de forma 
más sencilla y robusta. Ya que se importa se me hace extraño no 
aprovecharlos.También te recomiendo que revises la gestión de errores, parece 
frágil. Imagino que si el código de respuesta es distingo de 404 no significa 
necesariamente que la petición ha ido bien. Confirmalo con la documentación de 
la API.SaludosMissatge de Lemarchand Barker  del dia 
dv., 3 de jul. 2020 a les 13:36:Buenas gracias a todos por sus aportes. Si, me 
llamo Verónica.En respuesta a Alexis, puede ser una forma incorrecta de 
realizar la consulta pero cuando hice copy-paste, al probar con distintas 
localidades funcionó. Tengo que mirar la info para desarrolladores que tiene 
más detenidamente, no es larga.Yo al 404 lo entiendo como el de page not found, 
de ahí que el else te diga que no encontró la ciudad. No encuentra la página 
con la información de esa localidad.El vie., 3 de jul. de 2020 04:33, Alexis 
Roda  escribió:Si python dice "KeyError: 
main" al ejecutar y = x["main"] es que x no tiene la clave "main". Averigua el 
valor de x, tal vez te dé una pista del problema.En el otro mensaje, al cambiar 
"main" por "cod" el error era "int value is not subscriptable" (o algo 
parecido), eso nos dice que el valor asociado a la clave "cod" es un número 
(habría que confirmarlo con la documentación de la API) pero el programa lo 
trata como una cadena (en el if x["cod"] != "404"). El número 404 y la cadena 
"404" comparan como distintos. No sé si tiene que ver con el KeyError main pero 
es un error que habría que corregir. Relacionado con esto, no parece buena idea 
asumir que si el código es distinto de 404 la petición ha ido bien. Asumiendo 
que sean códigos HTTP yo haría algo como: si cod == 200 procesamiento ok sino 
si cod == 404 imprime "no encontrado" ... sino imprime "error desconocido".Me 
llama la atención que el script utilice el paquete requests para luego acabar 
construyendo la URL a mano. Por otro lado la URL que construye no parece muy 
correcta. Suponiendo que nombre_ciudad sea FOO:url = 
"http://api.openweathermap.org/data/2.5/weather?q=sp"complete_url = url + 
"appid=" + api_key + "=sp" + nombre_ciudadal final complete_url vale 
http://api.openweathermap.org/data/2.5/weather?q=spappid=API_KEY=spFOO. Creo 
que deberia ser algo mas parecido a 
http://api.openweathermap.org/data/2.5/weather?q=FOO=API_KEY=sp.Usando
 requests de forma correcta te quitas problemas:url = 
"http://api.openweathermap.org/data/2.5/weather"response = requests.get(url, 
data={"q": nombre_ciudad, "lang": "sp", "appid": api_key})añadirá el ? y los & 
donde corresponda, codificará correctamente los valores y no quedarán valores 
"desparejados" ni claves duplicadas.Visto todo esto sigo pensando que el 
problema es una mala petición a la API que devuelve un código de error que no 
es gestionado correctamente.Respecto a que el problema se produzca cuando 
escribes el programa a mano y que funciona si copias/pegas. En caso que no sea 
un error evidente en la transcripción y que el valor de x no te dé ninguna 
pista, los IDE suelen incluir alguna herramienta para comparar archivos. 
Comparalos y encuentra que los hace diferentes y puede causar el 
problema.https://www.jetbrains.com/help/pycharm/comparing-files-and-folders.htmlCreo
 que es excesivo para este problema pero es otra herramienta que puede ser 
útil.SaludosMissatge de Lemarch

Re: [Python-es] [Consulta] Sobre keyerror

2020-07-03 Por tema Alexis Roda
Tiendo a dar demasiada información y perderme en detalles. La parte
relevante de mi respuesta es cuando digo que el número 404 y la cadena
"404" comparan como distintos. En Python, si comparas un número (un int) y
una cadena (un str) el resultado es que siempre son distintos,
independientemente de su valor. Esto implica que *la rama del else jamás se
ejecuta*, no importa qué código de respuesta devuelve la API, siempre se
ejecuta la rama del then. Esto es un problema cuando la respuesta es no-OK
y no contiene la clave "main".

Lo puedes confirmar fácilmente inspeccionando el valor de x. Si estoy en lo
cierto verás algo como {"cod": 123, ...} no {"cod": "123",  ...}. La
confirmación definitiva sería la documentación de la API, la especificación
del formato de la respuesta.

Con "la forma correcta" quería decir "la forma recomendada". requests
ofrece mecanismos para hacer lo mismo de forma más sencilla y robusta. Ya
que se importa se me hace extraño no aprovecharlos.

También te recomiendo que revises la gestión de errores, parece frágil.
Imagino que si el código de respuesta es distingo de 404 no significa
necesariamente que la petición ha ido bien. Confirmalo con la documentación
de la API.


Saludos

Missatge de Lemarchand Barker  del dia dv., 3 de
jul. 2020 a les 13:36:

> Buenas gracias a todos por sus aportes. Si, me llamo Verónica.
> En respuesta a Alexis, puede ser una forma incorrecta de realizar la
> consulta pero cuando hice copy-paste, al probar con distintas localidades
> funcionó. Tengo que mirar la info para desarrolladores que tiene más
> detenidamente, no es larga.
> Yo al 404 lo entiendo como el de page not found, de ahí que el else te
> diga que no encontró la ciudad. No encuentra la página con la información
> de esa localidad.
>
>
>
> El vie., 3 de jul. de 2020 04:33, Alexis Roda <
> alexis.roda.villalo...@gmail.com> escribió:
>
>> Si python dice "KeyError: main" al ejecutar y = x["main"] es que x no
>> tiene la clave "main". Averigua el valor de x, tal vez te dé una pista del
>> problema.
>>
>> En el otro mensaje, al cambiar "main" por "cod" el error era "int value
>> is not subscriptable" (o algo parecido), eso nos dice que el valor asociado
>> a la clave "cod" es un número (habría que confirmarlo con la documentación
>> de la API) pero el programa lo trata como una cadena (en el if x["cod"]
>> != "404"). El número 404 y la cadena "404" comparan como distintos. No
>> sé si tiene que ver con el KeyError main pero es un error que habría que
>> corregir. Relacionado con esto, no parece buena idea asumir que si el
>> código es distinto de 404 la petición ha ido bien. Asumiendo que sean
>> códigos HTTP yo haría algo como: si cod == 200 procesamiento ok sino si
>> cod == 404 imprime "no encontrado" ... sino imprime "error desconocido".
>>
>> Me llama la atención que el script utilice el paquete requests para luego
>> acabar construyendo la URL a mano. Por otro lado la URL que construye no
>> parece muy correcta. Suponiendo que nombre_ciudad sea FOO:
>>
>> url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
>> complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad
>>
>>
>> al final complete_url vale
>> http://api.openweathermap.org/data/2.5/weather?q=spappid=API_KEY=spFOO.
>> Creo que deberia ser algo mas parecido a
>> http://api.openweathermap.org/data/2.5/weather?q=FOO=API_KEY=sp
>> .
>>
>> Usando requests de forma correcta te quitas problemas:
>>
>> url = "http://api.openweathermap.org/data/2.5/weather
>> "
>> response = requests.get(url, data={"q": nombre_ciudad, "lang": "sp",
>> "appid": api_key})
>>
>>
>> añadirá el ? y los & donde corresponda, codificará correctamente los
>> valores y no quedarán valores "desparejados" ni claves duplicadas.
>>
>> Visto todo esto sigo pensando que el problema es una mala petición a la
>> API que devuelve un código de error que no es gestionado correctamente.
>>
>> Respecto a que el problema se produzca cuando escribes el programa a mano
>> y que funciona si copias/pegas. En caso que no sea un error evidente en la
>> transcripción y que el valor de x no te dé ninguna pista, los IDE suelen
>> incluir alguna herramienta para comparar archivos. Comparalos y encuentra
>> que los hace diferentes y puede causar el problema.
>>
>> https://www.jetbrains.com/help/pycharm/comparing-files-and-folders.html
>>
>> Creo que es excesivo para este problema pero es otra herramienta que
>> puede ser útil.
>>
>>
>> Saludos
>>
>> Missatge de Lemarchand Barker  del dia dv., 3
>> de jul. 2020 a les 1:22:
>>
>>> Hola, el código de api key funciona, porque me registré y lo usé y
>>> funcionó.
>>> Lo de sp fue más que nada para probar, corresponde al Multilingual
>>> support. Incluso cuando hice copy-paste del código sin usar el sp,
>>> funcionaba perfecto. Lo saqué de acá: https://openweathermap.org/current.
>>> Lo del multilingual está ya casi al final de la página.
>>> La url que uso es esta: 

Re: [Python-es] [Consulta] Sobre keyerror

2020-07-03 Por tema Lemarchand Barker
Por o visto no fuí la única con el problema de main

El vie., 3 jul. 2020 a las 8:36, Lemarchand Barker (<
lemarchand8...@gmail.com>) escribió:

> Buenas gracias a todos por sus aportes. Si, me llamo Verónica.
> En respuesta a Alexis, puede ser una forma incorrecta de realizar la
> consulta pero cuando hice copy-paste, al probar con distintas localidades
> funcionó. Tengo que mirar la info para desarrolladores que tiene más
> detenidamente, no es larga.
> Yo al 404 lo entiendo como el de page not found, de ahí que el else te
> diga que no encontró la ciudad. No encuentra la página con la información
> de esa localidad.
>
>
>
> El vie., 3 de jul. de 2020 04:33, Alexis Roda <
> alexis.roda.villalo...@gmail.com> escribió:
>
>> Si python dice "KeyError: main" al ejecutar y = x["main"] es que x no
>> tiene la clave "main". Averigua el valor de x, tal vez te dé una pista del
>> problema.
>>
>> En el otro mensaje, al cambiar "main" por "cod" el error era "int value
>> is not subscriptable" (o algo parecido), eso nos dice que el valor asociado
>> a la clave "cod" es un número (habría que confirmarlo con la documentación
>> de la API) pero el programa lo trata como una cadena (en el if x["cod"]
>> != "404"). El número 404 y la cadena "404" comparan como distintos. No
>> sé si tiene que ver con el KeyError main pero es un error que habría que
>> corregir. Relacionado con esto, no parece buena idea asumir que si el
>> código es distinto de 404 la petición ha ido bien. Asumiendo que sean
>> códigos HTTP yo haría algo como: si cod == 200 procesamiento ok sino si
>> cod == 404 imprime "no encontrado" ... sino imprime "error desconocido".
>>
>> Me llama la atención que el script utilice el paquete requests para luego
>> acabar construyendo la URL a mano. Por otro lado la URL que construye no
>> parece muy correcta. Suponiendo que nombre_ciudad sea FOO:
>>
>> url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
>> complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad
>>
>>
>> al final complete_url vale
>> http://api.openweathermap.org/data/2.5/weather?q=spappid=API_KEY=spFOO.
>> Creo que deberia ser algo mas parecido a
>> http://api.openweathermap.org/data/2.5/weather?q=FOO=API_KEY=sp
>> .
>>
>> Usando requests de forma correcta te quitas problemas:
>>
>> url = "http://api.openweathermap.org/data/2.5/weather
>> "
>> response = requests.get(url, data={"q": nombre_ciudad, "lang": "sp",
>> "appid": api_key})
>>
>>
>> añadirá el ? y los & donde corresponda, codificará correctamente los
>> valores y no quedarán valores "desparejados" ni claves duplicadas.
>>
>> Visto todo esto sigo pensando que el problema es una mala petición a la
>> API que devuelve un código de error que no es gestionado correctamente.
>>
>> Respecto a que el problema se produzca cuando escribes el programa a mano
>> y que funciona si copias/pegas. En caso que no sea un error evidente en la
>> transcripción y que el valor de x no te dé ninguna pista, los IDE suelen
>> incluir alguna herramienta para comparar archivos. Comparalos y encuentra
>> que los hace diferentes y puede causar el problema.
>>
>> https://www.jetbrains.com/help/pycharm/comparing-files-and-folders.html
>>
>> Creo que es excesivo para este problema pero es otra herramienta que
>> puede ser útil.
>>
>>
>> Saludos
>>
>> Missatge de Lemarchand Barker  del dia dv., 3
>> de jul. 2020 a les 1:22:
>>
>>> Hola, el código de api key funciona, porque me registré y lo usé y
>>> funcionó.
>>> Lo de sp fue más que nada para probar, corresponde al Multilingual
>>> support. Incluso cuando hice copy-paste del código sin usar el sp,
>>> funcionaba perfecto. Lo saqué de acá: https://openweathermap.org/current.
>>> Lo del multilingual está ya casi al final de la página.
>>> La url que uso es esta: api.openweathermap.org/data/2.5/weather? que es
>>> la misma que figura en la página. Reitero, el problema me salta cada vez
>>> que copio el código de forma manual, con copy-paste ningún problema.
>>> Saludos
>>>
>>> El jue., 2 jul. 2020 a las 20:00, David Suárez vía Python-es (<
>>> python-es@python.org>) escribió:
>>>
 Vero,

 el problema que veo es que tienes la cadena "sp" de sobra tanto en la
 variable url como cuando generas complete_url y creo que no deberían ir
 allí, aunque no he podido checarlo por lo de la llave API.

 El jue., 2 de jul. de 2020 a la(s) 17:30, Lemarchand Barker (
 lemarchand8...@gmail.com) escribió:

> Hola, este es mi código:
>
> import requests
> import json
>
> api_key = "API_KEY"
>
> url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
>
> nombre_ciudad = input("Ingrese nombre de la ciudad: ")
>
> complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad
>
> response = requests.get(complete_url)
>
> x = response.json()
>
> if x["cod"] != "404":
>
> y = x["main"]
>
> 

Re: [Python-es] [Consulta] Sobre keyerror

2020-07-03 Por tema Lemarchand Barker
Buenas gracias a todos por sus aportes. Si, me llamo Verónica.
En respuesta a Alexis, puede ser una forma incorrecta de realizar la
consulta pero cuando hice copy-paste, al probar con distintas localidades
funcionó. Tengo que mirar la info para desarrolladores que tiene más
detenidamente, no es larga.
Yo al 404 lo entiendo como el de page not found, de ahí que el else te diga
que no encontró la ciudad. No encuentra la página con la información de esa
localidad.



El vie., 3 de jul. de 2020 04:33, Alexis Roda <
alexis.roda.villalo...@gmail.com> escribió:

> Si python dice "KeyError: main" al ejecutar y = x["main"] es que x no
> tiene la clave "main". Averigua el valor de x, tal vez te dé una pista del
> problema.
>
> En el otro mensaje, al cambiar "main" por "cod" el error era "int value is
> not subscriptable" (o algo parecido), eso nos dice que el valor asociado a
> la clave "cod" es un número (habría que confirmarlo con la documentación de
> la API) pero el programa lo trata como una cadena (en el if x["cod"] !=
> "404"). El número 404 y la cadena "404" comparan como distintos. No sé si
> tiene que ver con el KeyError main pero es un error que habría que
> corregir. Relacionado con esto, no parece buena idea asumir que si el
> código es distinto de 404 la petición ha ido bien. Asumiendo que sean
> códigos HTTP yo haría algo como: si cod == 200 procesamiento ok sino si
> cod == 404 imprime "no encontrado" ... sino imprime "error desconocido".
>
> Me llama la atención que el script utilice el paquete requests para luego
> acabar construyendo la URL a mano. Por otro lado la URL que construye no
> parece muy correcta. Suponiendo que nombre_ciudad sea FOO:
>
> url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
> complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad
>
>
> al final complete_url vale
> http://api.openweathermap.org/data/2.5/weather?q=spappid=API_KEY=spFOO.
> Creo que deberia ser algo mas parecido a
> http://api.openweathermap.org/data/2.5/weather?q=FOO=API_KEY=sp
> .
>
> Usando requests de forma correcta te quitas problemas:
>
> url = "http://api.openweathermap.org/data/2.5/weather
> "
> response = requests.get(url, data={"q": nombre_ciudad, "lang": "sp",
> "appid": api_key})
>
>
> añadirá el ? y los & donde corresponda, codificará correctamente los
> valores y no quedarán valores "desparejados" ni claves duplicadas.
>
> Visto todo esto sigo pensando que el problema es una mala petición a la
> API que devuelve un código de error que no es gestionado correctamente.
>
> Respecto a que el problema se produzca cuando escribes el programa a mano
> y que funciona si copias/pegas. En caso que no sea un error evidente en la
> transcripción y que el valor de x no te dé ninguna pista, los IDE suelen
> incluir alguna herramienta para comparar archivos. Comparalos y encuentra
> que los hace diferentes y puede causar el problema.
>
> https://www.jetbrains.com/help/pycharm/comparing-files-and-folders.html
>
> Creo que es excesivo para este problema pero es otra herramienta que puede
> ser útil.
>
>
> Saludos
>
> Missatge de Lemarchand Barker  del dia dv., 3
> de jul. 2020 a les 1:22:
>
>> Hola, el código de api key funciona, porque me registré y lo usé y
>> funcionó.
>> Lo de sp fue más que nada para probar, corresponde al Multilingual
>> support. Incluso cuando hice copy-paste del código sin usar el sp,
>> funcionaba perfecto. Lo saqué de acá: https://openweathermap.org/current.
>> Lo del multilingual está ya casi al final de la página.
>> La url que uso es esta: api.openweathermap.org/data/2.5/weather? que es
>> la misma que figura en la página. Reitero, el problema me salta cada vez
>> que copio el código de forma manual, con copy-paste ningún problema.
>> Saludos
>>
>> El jue., 2 jul. 2020 a las 20:00, David Suárez vía Python-es (<
>> python-es@python.org>) escribió:
>>
>>> Vero,
>>>
>>> el problema que veo es que tienes la cadena "sp" de sobra tanto en la
>>> variable url como cuando generas complete_url y creo que no deberían ir
>>> allí, aunque no he podido checarlo por lo de la llave API.
>>>
>>> El jue., 2 de jul. de 2020 a la(s) 17:30, Lemarchand Barker (
>>> lemarchand8...@gmail.com) escribió:
>>>
 Hola, este es mi código:

 import requests
 import json

 api_key = "API_KEY"

 url = "http://api.openweathermap.org/data/2.5/weather?q=sp;

 nombre_ciudad = input("Ingrese nombre de la ciudad: ")

 complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad

 response = requests.get(complete_url)

 x = response.json()

 if x["cod"] != "404":

 y = x["main"]

 temperatura_actual = y["temp"]

 celsius = temperatura_actual - 273.15

 presion_actual = y["pressure"]

 humedad_actual = y["humidity"]

 z = x["clima"]

 descripcion = z[0]["descripcion"]

 

Re: [Python-es] [Consulta] Sobre keyerror

2020-07-03 Por tema Alexis Roda
Si python dice "KeyError: main" al ejecutar y = x["main"] es que x no tiene
la clave "main". Averigua el valor de x, tal vez te dé una pista del
problema.

En el otro mensaje, al cambiar "main" por "cod" el error era "int value is
not subscriptable" (o algo parecido), eso nos dice que el valor asociado a
la clave "cod" es un número (habría que confirmarlo con la documentación de
la API) pero el programa lo trata como una cadena (en el if x["cod"] !=
"404"). El número 404 y la cadena "404" comparan como distintos. No sé si
tiene que ver con el KeyError main pero es un error que habría que
corregir. Relacionado con esto, no parece buena idea asumir que si el
código es distinto de 404 la petición ha ido bien. Asumiendo que sean
códigos HTTP yo haría algo como: si cod == 200 procesamiento ok sino si
cod == 404 imprime "no encontrado" ... sino imprime "error desconocido".

Me llama la atención que el script utilice el paquete requests para luego
acabar construyendo la URL a mano. Por otro lado la URL que construye no
parece muy correcta. Suponiendo que nombre_ciudad sea FOO:

url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad


al final complete_url vale
http://api.openweathermap.org/data/2.5/weather?q=spappid=API_KEY=spFOO.
Creo que deberia ser algo mas parecido a
http://api.openweathermap.org/data/2.5/weather?q=FOO=API_KEY=sp.

Usando requests de forma correcta te quitas problemas:

url = "http://api.openweathermap.org/data/2.5/weather
"
response = requests.get(url, data={"q": nombre_ciudad, "lang": "sp",
"appid": api_key})


añadirá el ? y los & donde corresponda, codificará correctamente los
valores y no quedarán valores "desparejados" ni claves duplicadas.

Visto todo esto sigo pensando que el problema es una mala petición a la API
que devuelve un código de error que no es gestionado correctamente.

Respecto a que el problema se produzca cuando escribes el programa a mano y
que funciona si copias/pegas. En caso que no sea un error evidente en la
transcripción y que el valor de x no te dé ninguna pista, los IDE suelen
incluir alguna herramienta para comparar archivos. Comparalos y encuentra
que los hace diferentes y puede causar el problema.

https://www.jetbrains.com/help/pycharm/comparing-files-and-folders.html

Creo que es excesivo para este problema pero es otra herramienta que puede
ser útil.


Saludos

Missatge de Lemarchand Barker  del dia dv., 3 de
jul. 2020 a les 1:22:

> Hola, el código de api key funciona, porque me registré y lo usé y
> funcionó.
> Lo de sp fue más que nada para probar, corresponde al Multilingual
> support. Incluso cuando hice copy-paste del código sin usar el sp,
> funcionaba perfecto. Lo saqué de acá: https://openweathermap.org/current.
> Lo del multilingual está ya casi al final de la página.
> La url que uso es esta: api.openweathermap.org/data/2.5/weather? que es
> la misma que figura en la página. Reitero, el problema me salta cada vez
> que copio el código de forma manual, con copy-paste ningún problema.
> Saludos
>
> El jue., 2 jul. 2020 a las 20:00, David Suárez vía Python-es (<
> python-es@python.org>) escribió:
>
>> Vero,
>>
>> el problema que veo es que tienes la cadena "sp" de sobra tanto en la
>> variable url como cuando generas complete_url y creo que no deberían ir
>> allí, aunque no he podido checarlo por lo de la llave API.
>>
>> El jue., 2 de jul. de 2020 a la(s) 17:30, Lemarchand Barker (
>> lemarchand8...@gmail.com) escribió:
>>
>>> Hola, este es mi código:
>>>
>>> import requests
>>> import json
>>>
>>> api_key = "API_KEY"
>>>
>>> url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
>>>
>>> nombre_ciudad = input("Ingrese nombre de la ciudad: ")
>>>
>>> complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad
>>>
>>> response = requests.get(complete_url)
>>>
>>> x = response.json()
>>>
>>> if x["cod"] != "404":
>>>
>>> y = x["main"]
>>>
>>> temperatura_actual = y["temp"]
>>>
>>> celsius = temperatura_actual - 273.15
>>>
>>> presion_actual = y["pressure"]
>>>
>>> humedad_actual = y["humidity"]
>>>
>>> z = x["clima"]
>>>
>>> descripcion = z[0]["descripcion"]
>>>
>>> print(f"Temperatura: {celsius}°")
>>> print(f"Presión atmosférica: {presion_actual} hPa")
>>> print(f"Humedad: {humedad_actual} %")
>>> print(f"Descripción: {descripcion}")
>>>
>>> else:
>>> print("Ciudad no encontrada")
>>>
>>> La salida es la siguiente:
>>>
>>> /usr/bin/python3.8 /home/raiden/Programacion/weather/weather.py
>>> Ingrese nombre de la ciudad: Rosario
>>> Traceback (most recent call last):
>>>   File "/home/raiden/Programacion/weather/weather.py", line 18, in
>>> 
>>> y = x["main"]
>>> KeyError: 'main'
>>>
>>> El código original es este:
>>> Python-find-current-weather-of-any-city-using-openweathermap-api/
>>> 

Re: [Python-es] [Consulta] Sobre keyerror

2020-07-02 Por tema Sebastián Arancibia
Aportando a lo que dices, y considerando que Verónica (ese era tu nombre,
verdad?) usa PyCharm, el debugger que viene con el IDE es prácticamente lo
mejor del IDE. Puedes configurar tu código para que se ejecute desde un
main y ahí es simplemente darle "play" a la flecha que aparece al costado
de la línea donde declaras el main (justo no estoy en el compu del trabajo
donde uso PyCharm para desarrollar, pero mañana podría subir una captura).
El debugging te permite, aparte de poner los puntos de quiebre, ver los
valores de las variables en todo momento así como usar watchers para ser
aún más específico, así que si, muy buen consejo y es recomendable
familiarizarse a debuggear así ya que con print logging pierdes mucho
tiempo en escribir y luego remover logs que no se usarán en la app.

Saludos.

On Thu, Jul 2, 2020 at 9:30 PM lasizoillo  wrote:

> Buenas, perdonad el Off Topic, pero creo que es interesante comentar esto.
>
> El jue., 2 jul. 2020 a las 23:19, Gerardo Diez (<
> gerardo.diez.gar...@gmail.com>) escribió:
>
>> Hola,
>>
>> No soy precisamente un experto, pero yo normalmente voy poniendo prints
>> /liga por todos lados para que me vaya mostrando el contenido de las
>> cadenas.
>>
>>
>>
> No te voy a dármelas de listo y voy a confesar que de vez en cuando
> también hago "print debugging", pero cuando cuando lo hago es por pura
> vagancia y cosas muy rapiditas aun sabiendo que no es lo mejor para el día
> a día o para proyectos que van cogiendo cierto tamaño.
>
> Un avance sobre sobre el "print debugging" es usar el módulo logging.
> Basicamente la idea es que los prints que usas de debug los tienes que
> quitar para no tener "morralla" en producción. Si los imprimes con nivel de
> log debug, modificando en un único sitio puedes hacer que aparezcan o
> desaparezcan con la configuración del logger y no se escapa ninguno a
> producción ensuciándose los logs. Y puedes incluso configurar para que
> determinado módulo (o el namespace que utilices) tenga un cierto nivel de
> log (por ejemplo DEBUG) mientras que otros módulos tengan otro nivel de log
> (por ejemplo WARNING).
>
> Pero lo mejor del mundo mundial es usar un debugger. Pdb viene con python
> pero es muy espartano, seguramente estés más cómodo con ipdb. Y si usas un
> IDE seguro que se integra con uno, que es incluso más cómodo. Puedes poner
> puntos de ruptura (el código se ejecuta hasta llegar a uno de ellos),
> ejecutar a partir de ahí paso a paso, analizar cualquier variable que
> tengas en el scope, volver a hacer que el programa se ejecute hasta el
> final o el siguiente punto de ruptura, usar el repl de python para probar
> que el código que te va a solucionar el problema realmente funciona,... Al
> principio puede que cueste un poquito, pero la inversión de tiempo se
> amortiza rápido.
>
> Resumen: a nada que estés haciendo algo que no sea un script de usar y
> tirar configura el logger y deja de usar print debugging. Aun así no hagas
> "print debugging" con el logger a no ser que esté justificado, mejor usa un
> debugger.
>
> Un saludo,
>
> Javi
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Sobre keyerror

2020-07-02 Por tema lasizoillo
Buenas, perdonad el Off Topic, pero creo que es interesante comentar esto.

El jue., 2 jul. 2020 a las 23:19, Gerardo Diez (<
gerardo.diez.gar...@gmail.com>) escribió:

> Hola,
>
> No soy precisamente un experto, pero yo normalmente voy poniendo prints
> /liga por todos lados para que me vaya mostrando el contenido de las
> cadenas.
>
>
>
No te voy a dármelas de listo y voy a confesar que de vez en cuando también
hago "print debugging", pero cuando cuando lo hago es por pura vagancia y
cosas muy rapiditas aun sabiendo que no es lo mejor para el día a día o
para proyectos que van cogiendo cierto tamaño.

Un avance sobre sobre el "print debugging" es usar el módulo logging.
Basicamente la idea es que los prints que usas de debug los tienes que
quitar para no tener "morralla" en producción. Si los imprimes con nivel de
log debug, modificando en un único sitio puedes hacer que aparezcan o
desaparezcan con la configuración del logger y no se escapa ninguno a
producción ensuciándose los logs. Y puedes incluso configurar para que
determinado módulo (o el namespace que utilices) tenga un cierto nivel de
log (por ejemplo DEBUG) mientras que otros módulos tengan otro nivel de log
(por ejemplo WARNING).

Pero lo mejor del mundo mundial es usar un debugger. Pdb viene con python
pero es muy espartano, seguramente estés más cómodo con ipdb. Y si usas un
IDE seguro que se integra con uno, que es incluso más cómodo. Puedes poner
puntos de ruptura (el código se ejecuta hasta llegar a uno de ellos),
ejecutar a partir de ahí paso a paso, analizar cualquier variable que
tengas en el scope, volver a hacer que el programa se ejecute hasta el
final o el siguiente punto de ruptura, usar el repl de python para probar
que el código que te va a solucionar el problema realmente funciona,... Al
principio puede que cueste un poquito, pero la inversión de tiempo se
amortiza rápido.

Resumen: a nada que estés haciendo algo que no sea un script de usar y
tirar configura el logger y deja de usar print debugging. Aun así no hagas
"print debugging" con el logger a no ser que esté justificado, mejor usa un
debugger.

Un saludo,

Javi
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Sobre keyerror

2020-07-02 Por tema Lemarchand Barker
Hola, el código de api key funciona, porque me registré y lo usé y funcionó.
Lo de sp fue más que nada para probar, corresponde al Multilingual support.
Incluso cuando hice copy-paste del código sin usar el sp, funcionaba
perfecto. Lo saqué de acá: https://openweathermap.org/current. Lo del
multilingual está ya casi al final de la página.
La url que uso es esta: api.openweathermap.org/data/2.5/weather? que es la
misma que figura en la página. Reitero, el problema me salta cada vez que
copio el código de forma manual, con copy-paste ningún problema.
Saludos

El jue., 2 jul. 2020 a las 20:00, David Suárez vía Python-es (<
python-es@python.org>) escribió:

> Vero,
>
> el problema que veo es que tienes la cadena "sp" de sobra tanto en la
> variable url como cuando generas complete_url y creo que no deberían ir
> allí, aunque no he podido checarlo por lo de la llave API.
>
> El jue., 2 de jul. de 2020 a la(s) 17:30, Lemarchand Barker (
> lemarchand8...@gmail.com) escribió:
>
>> Hola, este es mi código:
>>
>> import requests
>> import json
>>
>> api_key = "API_KEY"
>>
>> url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
>>
>> nombre_ciudad = input("Ingrese nombre de la ciudad: ")
>>
>> complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad
>>
>> response = requests.get(complete_url)
>>
>> x = response.json()
>>
>> if x["cod"] != "404":
>>
>> y = x["main"]
>>
>> temperatura_actual = y["temp"]
>>
>> celsius = temperatura_actual - 273.15
>>
>> presion_actual = y["pressure"]
>>
>> humedad_actual = y["humidity"]
>>
>> z = x["clima"]
>>
>> descripcion = z[0]["descripcion"]
>>
>> print(f"Temperatura: {celsius}°")
>> print(f"Presión atmosférica: {presion_actual} hPa")
>> print(f"Humedad: {humedad_actual} %")
>> print(f"Descripción: {descripcion}")
>>
>> else:
>> print("Ciudad no encontrada")
>>
>> La salida es la siguiente:
>>
>> /usr/bin/python3.8 /home/raiden/Programacion/weather/weather.py
>> Ingrese nombre de la ciudad: Rosario
>> Traceback (most recent call last):
>>   File "/home/raiden/Programacion/weather/weather.py", line 18, in
>> 
>> y = x["main"]
>> KeyError: 'main'
>>
>> El código original es este:
>> Python-find-current-weather-of-any-city-using-openweathermap-api/
>> 
>>
>> Saludos y gracias
>>
>>
>> El jue., 2 jul. 2020 a las 18:20, Gerardo Diez (<
>> gerardo.diez.gar...@gmail.com>) escribió:
>> >
>> > Hola,
>> >
>> > No soy precisamente un experto, pero yo normalmente voy poniendo prints
>> /liga por todos lados para que me vaya mostrando el contenido de las
>> cadenas.
>> >
>> > No recuerdo muy bien el funcionamiento de input pero puede ser que el
>> string que se esté incorporando lleve un salto de línea final ( \n)?
>> >
>> > Si es así mira la función strip
>> >
>> > Un saludo
>> >
>> > El jue., 2 jul. 2020 22:01, lemarchand8679 
>> escribió:
>> >>
>> >> Hola, había escrito para comentar que había solucionado el
>> inconveniente de KeyError, y es cierto en parte. Digo en parte porque si
>> escribo desde 0 para hacer algunas modificaciones, me tira ese error al
>> introducir una ciudad, y si hago un copy-paste del código funciona y la
>> verdad no se por qué, alguna idea? Gracias
>> >>
>> >>
>> >>
>> >> Enviado desde mi smartphone Samsung Galaxy.
>> >>
>> >> ___
>> >> Python-es mailing list
>> >> Python-es@python.org
>> >> https://mail.python.org/mailman/listinfo/python-es
>> >
>> > ___
>> > Python-es mailing list
>> > Python-es@python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Sobre keyerror

2020-07-02 Por tema David Suárez vía Python-es
Vero,

el problema que veo es que tienes la cadena "sp" de sobra tanto en la
variable url como cuando generas complete_url y creo que no deberían ir
allí, aunque no he podido checarlo por lo de la llave API.

El jue., 2 de jul. de 2020 a la(s) 17:30, Lemarchand Barker (
lemarchand8...@gmail.com) escribió:

> Hola, este es mi código:
>
> import requests
> import json
>
> api_key = "API_KEY"
>
> url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
>
> nombre_ciudad = input("Ingrese nombre de la ciudad: ")
>
> complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad
>
> response = requests.get(complete_url)
>
> x = response.json()
>
> if x["cod"] != "404":
>
> y = x["main"]
>
> temperatura_actual = y["temp"]
>
> celsius = temperatura_actual - 273.15
>
> presion_actual = y["pressure"]
>
> humedad_actual = y["humidity"]
>
> z = x["clima"]
>
> descripcion = z[0]["descripcion"]
>
> print(f"Temperatura: {celsius}°")
> print(f"Presión atmosférica: {presion_actual} hPa")
> print(f"Humedad: {humedad_actual} %")
> print(f"Descripción: {descripcion}")
>
> else:
> print("Ciudad no encontrada")
>
> La salida es la siguiente:
>
> /usr/bin/python3.8 /home/raiden/Programacion/weather/weather.py
> Ingrese nombre de la ciudad: Rosario
> Traceback (most recent call last):
>   File "/home/raiden/Programacion/weather/weather.py", line 18, in 
> y = x["main"]
> KeyError: 'main'
>
> El código original es este:
> Python-find-current-weather-of-any-city-using-openweathermap-api/
> 
>
> Saludos y gracias
>
>
> El jue., 2 jul. 2020 a las 18:20, Gerardo Diez (<
> gerardo.diez.gar...@gmail.com>) escribió:
> >
> > Hola,
> >
> > No soy precisamente un experto, pero yo normalmente voy poniendo prints
> /liga por todos lados para que me vaya mostrando el contenido de las
> cadenas.
> >
> > No recuerdo muy bien el funcionamiento de input pero puede ser que el
> string que se esté incorporando lleve un salto de línea final ( \n)?
> >
> > Si es así mira la función strip
> >
> > Un saludo
> >
> > El jue., 2 jul. 2020 22:01, lemarchand8679 
> escribió:
> >>
> >> Hola, había escrito para comentar que había solucionado el
> inconveniente de KeyError, y es cierto en parte. Digo en parte porque si
> escribo desde 0 para hacer algunas modificaciones, me tira ese error al
> introducir una ciudad, y si hago un copy-paste del código funciona y la
> verdad no se por qué, alguna idea? Gracias
> >>
> >>
> >>
> >> Enviado desde mi smartphone Samsung Galaxy.
> >>
> >> ___
> >> Python-es mailing list
> >> Python-es@python.org
> >> https://mail.python.org/mailman/listinfo/python-es
> >
> > ___
> > Python-es mailing list
> > Python-es@python.org
> > https://mail.python.org/mailman/listinfo/python-es
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] KeyError: 'main'

2020-07-02 Por tema Alexis Roda
Hola,

En este caso el valor de x no es exactamente como crees que es: esperas que
tenga una clave llamada "main" que aparentemente no tiene (dispara una
excepción KeyError cuando intentas acceder a "main"). Lo que puedes hacer
es averiguar como es realmente el valor almacenado en x.

Lo más sencillo para depurar este tipo de errores es utilizar alguna
variación de esto que tenga sentido en cada caso:

x = response.json()
print(type(x))  # esto te permite confirmar si x es realmente del
tipo que esperas
print(list(x.keys()))   # suponiendo que sea un diccionario, esto
te muestra sus claves

print(d)# esto imprime el diccionario


Imagino que al hacer la petición al servidor remoto se produce algún tipo
de error que no tienes en cuenta y el formato de la respuesta es distinto
al esperado.

Dices que has cambiado "main" por "cod", no acabo de verle la lógica parece
bastante arbitrario. Para aprender sería interesante que vieses porque ese
cambio produce el segundo error.


Saludos

Missatge de Lemarchand Barker  del dia dj., 2 de
jul. 2020 a les 16:44:

> Hola, estoy teniendo un inconveniente a la hora de correr un programa.
>
> El código es este:
>
> base_url = "http://api.openweathermap.org/data/2.5/weather?q=;
>
> city_name = input("Ingrese nombre de la ciudad: ")
>
> complete_url = base_url + "appid=" + api_key + "=" + city_name
>
> response = requests.get(complete_url)
>
> x = response.json()
>
> if x["cod"] != "404":
> y = x['main']
> # y = x["cod"]
> current_temperature = y["temp"]
> current_pressure = y["pressure"]
> current_humidiy = y["humidity"]
> z = x["weather"]
> weather_description = z[0]["description"]
>
> print(
> "Temperature (in centigrade unit) = " +
> str(current_temperature) +
> "\n atmospheric pressure (in hPa unit) = " +
> str(current_pressure) +
> "\n humidity (in percentage) = " +
> str(current_humidiy) +
> "\n description = " +
> str(weather_description)
> )
> else:
> print(" Ciudad no encontrada ")
>
> El problema se da cuando intento ingresar una ciudad. Probé con la mía
> Corrientes (Argentina) y me da KeyError, probé con otra localidad y es lo
> mismo.
> La salida es la siguiente:
>
> /usr/bin/python3.8 /home/raiden/Programacion/weather/tiempo.py
> Ingrese nombre de la ciudad: London
> Traceback (most recent call last):
>   File "/home/raiden/Programacion/weather/tiempo.py", line 18, in 
> y = x['main']
> KeyError: 'main'
>
> Leí que generalmente ese error se debe a que no encuentra el path o no
> existe. Probé cambiar en la línea 18 el "main" por "cod" y el error ya es
> otro. Es el siguiente:
>
> /usr/bin/python3.8 /home/raiden/Programacion/weather/tiempo.py
> Ingrese nombre de la ciudad: London
> Traceback (most recent call last):
>   File "/home/raiden/Programacion/weather/tiempo.py", line 20, in 
> current_temperature = y["temp"]
> TypeError: 'int' object is not subscriptable
>
> Asi que por eso comenté la línea como se ve en el código, porque me parece
> que mi problema es con main.
>
> El código original es este:
> Python-find-current-weather-of-any-city-using-openweathermap-api/
> 
>
> Saludos
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Sobre keyerror

2020-07-02 Por tema Sebastián Arancibia
Hola,

En efecto el error es porque no encuentra la key en el diccionario. De
hecho hice un print de la variable que obtienes tras llamar a la API, y al
no tener un API KEY válido no viene el elemento "main" dentro del
diccionario.

Este es el json de respuesta convertido a diccionario: {'cod': 401,
'message': 'Invalid API key. Please see
http://openweathermap.org/faq#error401 for more info.'}
Fíjate que si viene el cod (y por eso no se cae en esa línea), pero no
viene nada mas, lo que haría yo en ese if es validar respuestas distintas a
200.

Raro si, que me creé una cuenta para usar la API, y no me funciona la API
KEY. Debe estar desactualizado el tutorial.

Saludos.

On Thu, Jul 2, 2020 at 6:30 PM Lemarchand Barker 
wrote:

> Hola, este es mi código:
>
> import requests
> import json
>
> api_key = "API_KEY"
>
> url = "http://api.openweathermap.org/data/2.5/weather?q=sp;
>
> nombre_ciudad = input("Ingrese nombre de la ciudad: ")
>
> complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad
>
> response = requests.get(complete_url)
>
> x = response.json()
>
> if x["cod"] != "404":
>
> y = x["main"]
>
> temperatura_actual = y["temp"]
>
> celsius = temperatura_actual - 273.15
>
> presion_actual = y["pressure"]
>
> humedad_actual = y["humidity"]
>
> z = x["clima"]
>
> descripcion = z[0]["descripcion"]
>
> print(f"Temperatura: {celsius}°")
> print(f"Presión atmosférica: {presion_actual} hPa")
> print(f"Humedad: {humedad_actual} %")
> print(f"Descripción: {descripcion}")
>
> else:
> print("Ciudad no encontrada")
>
> La salida es la siguiente:
>
> /usr/bin/python3.8 /home/raiden/Programacion/weather/weather.py
> Ingrese nombre de la ciudad: Rosario
> Traceback (most recent call last):
>   File "/home/raiden/Programacion/weather/weather.py", line 18, in 
> y = x["main"]
> KeyError: 'main'
>
> El código original es este:
> Python-find-current-weather-of-any-city-using-openweathermap-api/
> 
>
> Saludos y gracias
>
>
> El jue., 2 jul. 2020 a las 18:20, Gerardo Diez (<
> gerardo.diez.gar...@gmail.com>) escribió:
> >
> > Hola,
> >
> > No soy precisamente un experto, pero yo normalmente voy poniendo prints
> /liga por todos lados para que me vaya mostrando el contenido de las
> cadenas.
> >
> > No recuerdo muy bien el funcionamiento de input pero puede ser que el
> string que se esté incorporando lleve un salto de línea final ( \n)?
> >
> > Si es así mira la función strip
> >
> > Un saludo
> >
> > El jue., 2 jul. 2020 22:01, lemarchand8679 
> escribió:
> >>
> >> Hola, había escrito para comentar que había solucionado el
> inconveniente de KeyError, y es cierto en parte. Digo en parte porque si
> escribo desde 0 para hacer algunas modificaciones, me tira ese error al
> introducir una ciudad, y si hago un copy-paste del código funciona y la
> verdad no se por qué, alguna idea? Gracias
> >>
> >>
> >>
> >> Enviado desde mi smartphone Samsung Galaxy.
> >>
> >> ___
> >> Python-es mailing list
> >> Python-es@python.org
> >> https://mail.python.org/mailman/listinfo/python-es
> >
> > ___
> > Python-es mailing list
> > Python-es@python.org
> > https://mail.python.org/mailman/listinfo/python-es
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Sobre keyerror

2020-07-02 Por tema Lemarchand Barker
Hola, este es mi código:

import requests
import json

api_key = "API_KEY"

url = "http://api.openweathermap.org/data/2.5/weather?q=sp;

nombre_ciudad = input("Ingrese nombre de la ciudad: ")

complete_url = url + "appid=" + api_key + "=sp" + nombre_ciudad

response = requests.get(complete_url)

x = response.json()

if x["cod"] != "404":

y = x["main"]

temperatura_actual = y["temp"]

celsius = temperatura_actual - 273.15

presion_actual = y["pressure"]

humedad_actual = y["humidity"]

z = x["clima"]

descripcion = z[0]["descripcion"]

print(f"Temperatura: {celsius}°")
print(f"Presión atmosférica: {presion_actual} hPa")
print(f"Humedad: {humedad_actual} %")
print(f"Descripción: {descripcion}")

else:
print("Ciudad no encontrada")

La salida es la siguiente:

/usr/bin/python3.8 /home/raiden/Programacion/weather/weather.py
Ingrese nombre de la ciudad: Rosario
Traceback (most recent call last):
  File "/home/raiden/Programacion/weather/weather.py", line 18, in 
y = x["main"]
KeyError: 'main'

El código original es este:
Python-find-current-weather-of-any-city-using-openweathermap-api/


Saludos y gracias


El jue., 2 jul. 2020 a las 18:20, Gerardo Diez (<
gerardo.diez.gar...@gmail.com>) escribió:
>
> Hola,
>
> No soy precisamente un experto, pero yo normalmente voy poniendo prints
/liga por todos lados para que me vaya mostrando el contenido de las
cadenas.
>
> No recuerdo muy bien el funcionamiento de input pero puede ser que el
string que se esté incorporando lleve un salto de línea final ( \n)?
>
> Si es así mira la función strip
>
> Un saludo
>
> El jue., 2 jul. 2020 22:01, lemarchand8679 
escribió:
>>
>> Hola, había escrito para comentar que había solucionado el inconveniente
de KeyError, y es cierto en parte. Digo en parte porque si escribo desde 0
para hacer algunas modificaciones, me tira ese error al introducir una
ciudad, y si hago un copy-paste del código funciona y la verdad no se por
qué, alguna idea? Gracias
>>
>>
>>
>> Enviado desde mi smartphone Samsung Galaxy.
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Sobre keyerror

2020-07-02 Por tema Gerardo Diez
Hola,

No soy precisamente un experto, pero yo normalmente voy poniendo prints
/liga por todos lados para que me vaya mostrando el contenido de las
cadenas.

No recuerdo muy bien el funcionamiento de input pero puede ser que el
string que se esté incorporando lleve un salto de línea final ( \n)?

Si es así mira la función strip

Un saludo

El jue., 2 jul. 2020 22:01, lemarchand8679 
escribió:

> Hola, había escrito para comentar que había solucionado el inconveniente
> de KeyError, y es cierto en parte. Digo en parte porque si escribo desde 0
> para hacer algunas modificaciones, me tira ese error al introducir una
> ciudad, y si hago un copy-paste del código funciona y la verdad no se por
> qué, alguna idea? Gracias
>
>
>
> Enviado desde mi smartphone Samsung Galaxy.
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] Sobre keyerror

2020-07-02 Por tema lemarchand8679
Hola, había escrito para comentar que había solucionado el inconveniente de 
KeyError, y es cierto en parte. Digo en parte porque si escribo desde 0 para 
hacer algunas modificaciones, me tira ese error al introducir una ciudad, y si 
hago un copy-paste del código funciona y la verdad no se por qué, alguna idea? 
GraciasEnviado desde mi smartphone Samsung Galaxy.___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] KeyError: 'main'

2020-07-02 Por tema Lemarchand Barker
Ya logré solucionarlo, ahora tengo que cambiar para que la temperatura la
muestre en celsius.
Cerrado :)

El jue., 2 jul. 2020 a las 11:44, Lemarchand Barker (<
lemarchand8...@gmail.com>) escribió:

> Hola, estoy teniendo un inconveniente a la hora de correr un programa.
>
> El código es este:
>
> base_url = "http://api.openweathermap.org/data/2.5/weather?q=;
>
> city_name = input("Ingrese nombre de la ciudad: ")
>
> complete_url = base_url + "appid=" + api_key + "=" + city_name
>
> response = requests.get(complete_url)
>
> x = response.json()
>
> if x["cod"] != "404":
> y = x['main']
> # y = x["cod"]
> current_temperature = y["temp"]
> current_pressure = y["pressure"]
> current_humidiy = y["humidity"]
> z = x["weather"]
> weather_description = z[0]["description"]
>
> print(
> "Temperature (in centigrade unit) = " +
> str(current_temperature) +
> "\n atmospheric pressure (in hPa unit) = " +
> str(current_pressure) +
> "\n humidity (in percentage) = " +
> str(current_humidiy) +
> "\n description = " +
> str(weather_description)
> )
> else:
> print(" Ciudad no encontrada ")
>
> El problema se da cuando intento ingresar una ciudad. Probé con la mía
> Corrientes (Argentina) y me da KeyError, probé con otra localidad y es lo
> mismo.
> La salida es la siguiente:
>
> /usr/bin/python3.8 /home/raiden/Programacion/weather/tiempo.py
> Ingrese nombre de la ciudad: London
> Traceback (most recent call last):
>   File "/home/raiden/Programacion/weather/tiempo.py", line 18, in 
> y = x['main']
> KeyError: 'main'
>
> Leí que generalmente ese error se debe a que no encuentra el path o no
> existe. Probé cambiar en la línea 18 el "main" por "cod" y el error ya es
> otro. Es el siguiente:
>
> /usr/bin/python3.8 /home/raiden/Programacion/weather/tiempo.py
> Ingrese nombre de la ciudad: London
> Traceback (most recent call last):
>   File "/home/raiden/Programacion/weather/tiempo.py", line 20, in 
> current_temperature = y["temp"]
> TypeError: 'int' object is not subscriptable
>
> Asi que por eso comenté la línea como se ve en el código, porque me parece
> que mi problema es con main.
>
> El código original es este:
> Python-find-current-weather-of-any-city-using-openweathermap-api/
> 
>
> Saludos
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] [Consulta] KeyError: 'main'

2020-07-02 Por tema Lemarchand Barker
Hola, estoy teniendo un inconveniente a la hora de correr un programa.

El código es este:

base_url = "http://api.openweathermap.org/data/2.5/weather?q=;

city_name = input("Ingrese nombre de la ciudad: ")

complete_url = base_url + "appid=" + api_key + "=" + city_name

response = requests.get(complete_url)

x = response.json()

if x["cod"] != "404":
y = x['main']
# y = x["cod"]
current_temperature = y["temp"]
current_pressure = y["pressure"]
current_humidiy = y["humidity"]
z = x["weather"]
weather_description = z[0]["description"]

print(
"Temperature (in centigrade unit) = " +
str(current_temperature) +
"\n atmospheric pressure (in hPa unit) = " +
str(current_pressure) +
"\n humidity (in percentage) = " +
str(current_humidiy) +
"\n description = " +
str(weather_description)
)
else:
print(" Ciudad no encontrada ")

El problema se da cuando intento ingresar una ciudad. Probé con la mía
Corrientes (Argentina) y me da KeyError, probé con otra localidad y es lo
mismo.
La salida es la siguiente:

/usr/bin/python3.8 /home/raiden/Programacion/weather/tiempo.py
Ingrese nombre de la ciudad: London
Traceback (most recent call last):
  File "/home/raiden/Programacion/weather/tiempo.py", line 18, in 
y = x['main']
KeyError: 'main'

Leí que generalmente ese error se debe a que no encuentra el path o no
existe. Probé cambiar en la línea 18 el "main" por "cod" y el error ya es
otro. Es el siguiente:

/usr/bin/python3.8 /home/raiden/Programacion/weather/tiempo.py
Ingrese nombre de la ciudad: London
Traceback (most recent call last):
  File "/home/raiden/Programacion/weather/tiempo.py", line 20, in 
current_temperature = y["temp"]
TypeError: 'int' object is not subscriptable

Asi que por eso comenté la línea como se ve en el código, porque me parece
que mi problema es con main.

El código original es este:
Python-find-current-weather-of-any-city-using-openweathermap-api/


Saludos
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Kivi, archivo .kv

2020-07-01 Por tema lemarchand8679
Muchas graciasEnviado desde mi smartphone Samsung Galaxy.
 Mensaje original De: Chema Cortes  Fecha: 
1/7/20  05:43  (GMT-03:00) A: La lista de python en castellano 
 Asunto: Re: [Python-es] [Consulta] Kivi, archivo .kv El 
mié., 24 jun. 2020 a las 1:09, Lemarchand Barker () 
escribió:Hola, estoy viendo a ver si puedo amigarme con algún framework. Si 
bien uso algo básico de tkinter, estoy viendo kivy y tengo una duda que es 
sencilla.Tengo el código en .py y ahora siguiendo el tuto tuve que crear un 
archivo .kv, mi pregunta es sobre esto, el .kv; a grandes rasgos; sería como la 
hoja de estilo del html? Gracias
Por lo que pone en la documentación, Kv es un lenguaje para declarar los 
widgets que usa tu aplicación y enlazarlos con los callbacks definidos en tu 
código python. Tiene pintas de SCSS, pero hace más cosas. Técnicamente, es un 
DSL (Domain-specific Language) similar al lenguaje yaml con código python 
empotrado.Varios frameworks UI utilizan lenguajes declarativos que facilitan el 
diseño visual y su desacople del resto del código. Lo normal es cargar estos 
ficheros declarativos al arrancar la aplicación para crear los widgets. De este 
modo, se puede modificar el diseño sin tocar el código de la aplicación. 
Saludos.-- Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales": 
https://blog.ch3m4.orgBuscador Python Hispano: http://busca.ch3m4.org
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] [Consulta] Kivi, archivo .kv

2020-07-01 Por tema Chema Cortes
El mié., 24 jun. 2020 a las 1:09, Lemarchand Barker (<
lemarchand8...@gmail.com>) escribió:

> Hola, estoy viendo a ver si puedo amigarme con algún framework. Si bien
> uso algo básico de tkinter, estoy viendo kivy y tengo una duda que es
> sencilla.
> Tengo el código en .py y ahora siguiendo el tuto tuve que crear un archivo
> .kv, mi pregunta es sobre esto, el .kv; a grandes rasgos; sería como la
> hoja de estilo del html? Gracias
>
> Por lo que pone en la documentación, Kv es un lenguaje para *declarar *los
widgets que usa tu aplicación y enlazarlos con los *callbacks *definidos en
tu código python. Tiene pintas de SCSS, pero hace más cosas. Técnicamente,
es un DSL (*Domain-specific Language*) similar al lenguaje yaml con código
python empotrado.

Varios frameworks UI utilizan lenguajes declarativos que facilitan el
diseño visual y su desacople del resto del código. Lo normal es cargar
estos ficheros declarativos al arrancar la aplicación para crear los widgets*.
*De este modo, se puede modificar el diseño sin tocar el código de la
aplicación.


Saludos.


-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
https://blog.ch3m4.org
Buscador Python Hispano: http://busca.ch3m4.org

___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


  1   2   3   >