0% encontró este documento útil (0 votos)
140 vistas15 páginas

Taller Data Science

Este documento proporciona instrucciones para analizar datos usando Pandas y DataFrames en Python. Explica cómo importar Pandas, cargar datos desde un archivo CSV, crear Series y DataFrames, y realizar operaciones comunes como seleccionar filas y columnas. También muestra cómo manejar datos tabulares como tablas de Excel usando las estructuras de datos de Pandas como Series y DataFrames.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
140 vistas15 páginas

Taller Data Science

Este documento proporciona instrucciones para analizar datos usando Pandas y DataFrames en Python. Explica cómo importar Pandas, cargar datos desde un archivo CSV, crear Series y DataFrames, y realizar operaciones comunes como seleccionar filas y columnas. También muestra cómo manejar datos tabulares como tablas de Excel usando las estructuras de datos de Pandas como Series y DataFrames.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 15

DATA SCIENCE

MANEJO DE PANDAS Y DATAFRAME


https://www.youtube.com/watch?v=PvNKKrPE0AI
https://aprendeconalf.es/docencia/python/manual/pandas/

Objetivo: Análisis de datos para la toma de decisiones usando los Dataframes y Pandas
de Python.
Pasos:
1. Descargar Anaconda Navigator 1.9.12 e instalarlo. https://anaconda.softonic.com/
2. Al instalar se obtendrá la siguiente interfaz.
3. Ingresamos a Jupyter Notebook y se crea un nuevo archivo en Python 3.

4. Descargar el archivo de los Olimpicos olympics.csv este archivo será de prueba


para trabajar con Pandas y Dataframe.
5. Reconocemos el entorno de trabajo de trabajo de Jupyter

PANDAS:
Es una librería de Python para Ciencia de Datos y Machine Learning. Permite
trabajar con datos tabulados es decir tipo tablas, por ejemplo, una tabla de Excel,
o una tabla de una base de datos.
Las principales características de esta librería son:

 Define nuevas estructuras de datos basadas en los arrays de la librería NumPy


pero con nuevas funcionalidades.
 Permite leer y escribir fácilmente ficheros en formato CSV, Excel y bases de datos
SQL.
 Permite acceder a los datos mediante índices o nombres para filas y columnas.
 Ofrece métodos para reordenar, dividir y combinar conjuntos de datos.
 Permite trabajar con series temporales.
 Realiza todas estas operaciones de manera muy eficiente.
Tipos de datos de Pandas

Pandas dispone de tres estructuras de datos diferentes:

 Series: Estructura de una dimensión.


 DataFrame: Estructura de dos dimensiones (tablas).
 Panel: Estructura de tres dimensiones (cubos).

La dos estructuras principales de Pandas son las Series (Vector o una columna) y Data
Frames(matrices).

La clase de objetos Series

Son estructuras similares a los arrays de una dimensión. Son homogéneas, es decir,
sus elementos tienen que ser del mismo tipo, y su tamaño es inmutable, es decir,
no se puede cambiar, aunque si su contenido.

Dispone de un índice que asocia un nombre a cada elemento de la serie, a través


de la cual se accede al elemento.
Ejemplo. La siguiente serie contiene las asignaturas de un curso.

>>> import pandas as pd


>>> s = pd.Series(['Matemáticas', 'Historia', 'Economía',
'Programación', 'Inglés'], dtype='string')
>>> print(s)
0 Matemáticas
1 Historia
2 Economía
3 Programación
4 Inglés

dtype: string

CREACIÓN DE UNA SERIE A PARTIR DE UN DICCIONARIO

Series(data=diccionario, index=indices): Devuelve un objeto de tipo Series con los


valores del diccionario diccionario y las filas especificados en la lista indices. Si no
se pasa la lista de índices se utilizan como índices las claves del diccionario.

>>> import pandas as pd


>>> s = pd.Series({'Matemáticas': 6.0, 'Economía': 4.5, 'Programación':
8.5})
>>> print(s)
Matemáticas 6.0
Economía 4.5
Programación 8.5
dtype: float64

Atributos de una serie

Existen varias propiedades o métodos para ver las características de una serie.

 s.size : Devuelve el número de elementos de la serie s.


 s.index : Devuelve una lista con los nombres de las filas del
DataFrame s.
 s.dtype : Devuelve el tipo de datos de los elementos de la serie s.

>>> import pandas as pd


>>> s = pd.Series([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
>>> s.size
10
>>> s.index
RangeIndex(start=0, stop=10, step=1)
>>> s.dtype
dtype('int64')

import pandas as pd // aca importamos la librería Pandas

Series
serie = pd.Series([1,2,3])
serie
out 0 1
1 2
2 3
serie.name=’nombre’
serie
out 0 1
1 2
2 3
name: nombre, dtype: int64

Con el archivo de los olímpicos crear algunas Series que permitan evidenciar su
manejo

Data Frames

df = pd.DataFrame({´columna1’: [1,2,3,4], ´columna2’:[‘a’,’b’,’c’,’d’]})


df

columna1 columna2
0 1 a
1 2 b
2 3 c
3 4 d
Para mostrar cuantas filas y columnas se tienen
df,shape
out: (4, 2)

6. Uso de ficheros de datos

df = pd.read.csv(‘d:/iris.data’, header = None)

df

df.head() // nos muestra las cinco primera filas del DataFrame

df.head(2) // Muestra las dos primeras filas

df.tail() // Muestra las últimas cinco filas del Data Frame


df.tail(2) // Muestra las últimas dos filas del Data Frame

Ahora se va a colocar las cabeceras a cada columna del ejemplo así:


nombres = ['longitud_sepalo', 'ancho_sepalo', 'longitud_petalo', 'ancho_petalo','clase']
nombres
para asignar los nombres a las columnas se hace así:
df.columns=nombres
df.head()

df.columns // Muestra las cabeceras de las columnas


Taller de Data Frames
Usando el archivo de los olimpicos crear los siguinets Dataframes y generar las consultas
correspondientes.

Se debe interpretar que se está haciendo en cada conjunto de instrucciones.

Instrucción

import pandas as pd

df = pd.read_csv('d:/olympics.csv', index_col=0, skiprows=1)

for col in df.columns:


if col[:2]=='01':
df.rename(columns={col:'Gold'+col[4:]}, inplace=True)
if col[:2]=='02':
df.rename(columns={col:'Silver'+col[4:]}, inplace=True)
if col[:2]=='03':
df.rename(columns={col:'Bronze'+col[4:]}, inplace=True)
if col[:1]=='№':
df.rename(columns={col:'#'+col[1:]}, inplace=True)

names_ids = df.index.str.split('\s\(') # split the index by '('

df.index = names_ids.str[0] # the [0] element is the country name (new index)
df['ID'] = names_ids.str[1].str[:3] # the [1] element is the abbreviation or ID (take first 3 characters from that
)

df = df.drop('Totals')
df.head()

Out[5]:

Instrucción
import pandas as pd
df = pd.read_csv('d:/olympics.csv')
df.head()
Out[26]:

Instrucción.
print only_gold()
File "<ipython-input-10-d1b348111bce>", line 1
print only_gold()
^
SyntaxError: invalid syntax

# You should write your whole answer within the function provided. The autograder will call
# this function and compare the return value against the correct solution value
def answer_zero():
# This function returns the row for Afghanistan, which is a Series object. The assignment
# question description will tell you the general format the autograder is expecting
return df.iloc[0]

# You can examine what your function returns by calling it in the cell. If you have questions
# about the assignment formats, check out the discussion forums for any FAQs
answer_zero()

Out[11]:
# Summer 13
Gold 0
Silver 0
Bronze 2
Total 2
# Winter 0
Gold.1 0
Silver.1 0
Bronze.1 0
Total.1 0
# Games 13
Gold.2 0
Silver.2 0
Bronze.2 2
Combined total 2
ID AFG
Name: Afghanistan, dtype: object

Instrucciones:

def answer_one():
return df['Gold'].argmax()
answer_one()

Out[12]:
135

Instrucciones:

def answer_two():
return (df['Gold'] - df['Gold.1']).argmax()
answer_two()

Out[13]:
135

Instrucciones:

def answer_three():
atleast_one_gold = df[(df['Gold']>1) & (df['Gold.1']> 1)]
return ((atleast_one_gold['Gold'] - atleast_one_gold['Gold.1'])/atleast_one_gold['Gold.2']).idxmax()

answer_three()

Out[20]:
'Australia'

Instrucciones:

def answer_four():
df['Points'] = df['Gold.2']*3 + df['Silver.2']*2 + df['Bronze.2']*1
return df['Points']
answer_four()

Out[22]:

Afghanistan 2
Algeria 27
Argentina 130
Armenia 16
Australasia 22
...
Yugoslavia 171
Independent Olympic Participants 4
Zambia 3
Zimbabwe 18
Mixed team 38
Name: Points, Length: 146, dtype: int64

Instrucciones:

census_df = pd.read_csv('d:/census.csv',encoding='cp1252')
census_df.head()
Out[45]:

Instrucciones

def answer_five():
df=census_df[census_df['SUMLEV'] == 50]
df = df.groupby( [ "SUMLEV", "STNAME"] ).size().to_frame(name = 'count').reset_index()
return df.loc[df['count'].idxmax()]['STNAME']
answer_five()

Out[46]:
'Texas'

Instrucciones

def answer_six():
result = census_df.copy()
result = result.reset_index()
result = result[result['SUMLEV'] == 50]
columns_to_keep = ['STNAME', 'CENSUS2010POP']
result = result[columns_to_keep]
result = result.sort_values(['STNAME','CENSUS2010POP'], ascending=False)
result = result.groupby('STNAME').head(3)
result = result.groupby("STNAME").sum().sort_values('CENSUS2010POP', ascending=False).reset_index
()
result = list(result['STNAME'].loc[:2])
return result

answer_six()

Out[49]:
['California', 'Texas', 'Illinois']
Instrucciones

def answer_seven():
result = census_df.copy()
result = result.reset_index()
result = result[result['SUMLEV'] == 50]
cols_to_use = ['POPESTIMATE2010',
'POPESTIMATE2011',
'POPESTIMATE2012',
'POPESTIMATE2013',
'POPESTIMATE2014',
'POPESTIMATE2015']
result['MinPop'] = result.loc[:, cols_to_use].min(axis=1)
result['MaxPop'] = result.loc[:, cols_to_use].max(axis=1)
result['PopDelta'] = result['MaxPop'] - result['MinPop']
columns_to_keep = ['CTYNAME', 'PopDelta']
result = result[columns_to_keep].sort_values('PopDelta', ascending=False).reset_index()
result = result['CTYNAME'].loc[0]
return result

answer_seven()

Out[51]:
'Harris County'

Instrucciones

def answer_eight():
result = census_df.copy()
result = result.reset_index()
result = result[result['SUMLEV'] == 50]
result = result[(result['REGION'] <= 2)]
result = result[(result['POPESTIMATE2015'] > result['POPESTIMATE2014'])]
#result['CTYNAME'] = result['CTYNAME'].str[0:10]
result = result[(result['CTYNAME'].str[0:10] == 'Washington')].sort_index()
cols_to_keep = ['STNAME', 'CTYNAME']
result = result[cols_to_keep]
return result

answer_eight()

Out[53]:
STNAME CTYNAME

896 Iowa Washington County

1419 Minnesota Washington County

2345 Pennsylvania Washington County

2355 Rhode Island Washington County

3163 Wisconsin Washington County

También podría gustarte