[Python-es] [Consulta] Leer csv

Lemarchand Barker lemarchand8679 en gmail.com
Dom Jul 19 16:51:05 EDT 2020


De lujo Darío y Sebastián, gracias

El dom., 19 jul. 2020 a las 17:37, Sebastián Arancibia
(<ciberseba en gmail.com>) 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 <python-es en python.org> 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&submit=Search
>>
>>
>>
>>
>> Enviado desde mi smartphone Samsung Galaxy.
>>
>>
>> -------- Mensaje original --------
>> De: Darío vía Python-es <python-es en python.org>
>> Fecha: 19/7/20 17:10 (GMT-03:00)
>> A: La lista de python en castellano <python-es en python.org>
>> CC: Darío <darioslc en protonmail.com>
>> 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 <lemarchand8679 en 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', ' 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
>> > (lemarchand8679 en 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 June 2019.']
>> > > Traceback (most recent call last):
>> > > File "/home/raiden/Programacion/curso/ejercicios/testcsv.py", line 6, in <module>
>> > > 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 en python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es


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