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] 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