Series e Indexación y selección de datos

2/28
Recursos

Aportes 39

Preguntas 12

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

aun cuando no se ha mencionado como hacer filtrado de los datos, es muy útil para complementar este ejercicio de la serie sr.

  • sr.isnull().any() esta funcion adicionalmente nos regresa un booleano indicandonos si existe (TRUE) o no existe (FALSE) algun nan
  • si hacemos sr[sr.notnull()] nos regresa los valores de la serie que “NO” son nulos.

import pandas as pd

sr = pd.Series(<list>) ⇒ crear una serie

sr = pd.Series(dic, index=<list_of_indexes>) ⇒ crea una Serie con índices específicos.

sr.values ⇒ obtener los valores de la serie

sr.index ⇒ obtener los índices de la serie

sr.shape ⇒ obtener la dimensión

sr[<index>] ⇒ obtener un elemento de la serie a través de un índice

sr[<list_of_indexes>] ⇒ obtener valores a través de una lista índices.

sr.isnull() ⇒ Lista con True cuando el valor es nulo

sr.notnull() ⇒ Lista con True cuando el valor es no nulo

Valores nulos


.
Existen diverso métodos para trabajar con datos nulos:
.

  • sr.isnull().sum() -> número total de valores nulos
  • sr.fillna(<valor>) -> rellena los valores nulos con el valor dado (string/float)
  • sr.dropna() -> borra todos los registros con al menos un valor nulo
  • sr.ffill() -> rellena el valor nulo con el mismo valor de la fila anterior
  • sr.backfill() -> rellena el valor nulo con el mismo valor de la fila siguiente

.

Ejemplos

dict_data = {'CO':100, 'MX':200, 'AR':300}
sr = pd.Series(dict_data, index=['CO', 'MX', 'PE'])
sr

CO    100.0
MX    200.0
PE      NaN
dtype: float64
sr.isnull().sum()

1
sr.dropna()

CO    100.0
MX    200.0
dtype: float64
sr.fillna(0)

CO    100.0
MX    200.0
PE      0.0
dtype: float64
sr.ffill()

CO    100.0
MX    200.0
PE    200.0
dtype: float64
sr.backfill()

CO    100.0
MX    200.0
PE      NaN
dtype: float64

entretenido y emocionado

Con la funcion index de la seria podemos acceder a un iterator con los indeces de la serie, ej:

import pandas as pd
my_series = pd.Series([‘a’,‘b’,‘c’])
for series_index in my_series.index:
print(series_index)
Me va a iterar sobre los index de la serie de pandas… Genial 😄

excelente, lo había dejado en stand by, pero estoy de regreso

Los índices son como la dirección de nuestro registro. Por el índice podemos acceder o llegar hasta el registro o registros que buscamos

esto va genial
me pregunto si existe una forma de en lugar hacerse desde el navegador se puede hacer desde un visual studio code o algo similar a una terminal pues me gustaria solo con oprimir la flecha hacia arriba usar el ultimo input como sucede en la terminal

Para los diccionarios, también podemos llamar únicamente los valores o tanto su llave como su valor:

dict_data.values() # Muestra los valores.

dict_data.items() # Muestro la llave y sus valores.

Excelente a seguir aprendiendo

Todo un mundo vinculado a python

Series, Indexación y Selección

  • np.array([lista1],[lista2]) genera vectores de una o más dimensiones

Series

  • pd.Series([lista]): crea una Serie, que es como un vector pero cuenta con índices
  • serie.values muestra su contenido. Si tiene una lista, mostrará que es un array([lista])
  • serie.index muestra el rango de índices
  • serie.shape muestra la cantidad de elementos / columnas
  • serie[index1, index2, etc] devuelve los elementos de la serie que están en ese índice
  • serie[10,2,6,4], index=[‘a’,‘b’,‘c’,‘d’] cambia los índices originales, generando que a=10, b=2, etc.
  • serie[‘b’:‘d’] devuelve todos los elementos desde el índice ‘b’ al índice ‘d’

Diccionarios

  • {a:1, b:2, c:2} genera un diccionario
  • diccionario.data.keys() devuelve las llaves (a, b, c)
  • pd.Series(diccionario) genera una Serie que hereda las llaves como índice y los valores como valores
  • pd.Series(diccionario, index=[‘a’,‘b’,‘d’]) devuelve el diccionario como una Serie, pero con el índice ‘d’ con un valor nulo y el índice ‘c’ omitido, porque no fue específicado en el argumento index

NumPy

  • np.nan = Not A Number (nulo)
  • Cualquier operación que se haga con un dato nulo obtendrá como resultado un número nulo
  • isnull() y notnull() devuelven TRUE o FALSE según sean nulos o no

Les entrego un resumen de la clase que hemos estado viendo hoy.

Algunas funciones del method summary de la libreria de pandas:
count() contara los valores
sum() sumara los valores
mean() obtendras la media
median() obtendras la mediana
max() obtendras el valor maximo
min() obtendras el valor minimomean

El curso no me parece para nada malo pero, considero solamente que son muchos comandos y códigos en una sola clase. Aunque de igual manera, es excelente.

Quien siente que lo excluyeron de la lista del diccionario?

dic_data={"Ven":845,"Ecu":768,"Per":986,"Bol":864,"Chl":1020}```

Con pandas tambien podemos asignar como index a valores float, y accederlos a ellos como un diccionario

>>> import pandas as pd
>>> sr = pd.Series([1,2,3,4], index=[1.1, 1.2, 1.3, 1.4])

>>> sr[1.2]
> 2 # que corresponde al indice 1.2

Lo hice con los nulos con ayuda de pandas.

df[df.isnull()]

para mostrar solo los nulos

df[df.isnull()]

y los no nulos

df[df.notnull()]

Series

Es una estructura de datos ordenada mediante índices.
.
Pueden obtenerse un subconjunto de una serie mediante bracket notation y mediante slicing.
.
Sus componentes están contenidos en los atributos .values, .index, .shape.
.
Puedes crear una serie mediante la función pd.Series().

  • Su argumento index permite configurar los índices de la estructura.

.
A partir de un dict pude crearse una serie, en la cual las keys del diccionario pasarán, por defecto, a ser los índices de la serie.

# ""Pandas es muy compatible con diferentes tipos de bases de datos""
# ""Coger el diccionario y transformalo en una serie de Pandas""
# "" dict_data transformado a una serie de Pandas pd.Series(diccionario)""
pd.Series(dict_data)

Para hacer el index me hizo importar esa librería en pandas:

from pandas._libs import index
sr = pd.Series([10,9,8,7,6],index=['a','b','c','e','f'])
sr

¿Le paso a alguien más?

En caso que lo necesiten antes de comenzar pueden instalar pandas y numpy con los siguientes códigos:

pip install pandas
pip install numpy

muchas gracias por la clase

Sin duda que es un gran docente. Me gusta que vaya de a poco y que tenga en cuenta que el alumno puede ir a su ritmo. Es un tema (librería) complejo y merece su tiempo.

Elementos de pandas:

  • series = muestra los elementos y el orden que ocupan en la serie

  • values = los valores que hay dentro de la serie

  • index = el rango del objeto: donde comienza y termina

  • shape = muestra la cantidad de elementos

Podemos obtener también la cantidad de elementos nulos o no nullos con la función value_counts. Por ejemplo:

sr.isnull().value_counts()

Retorna la cantidad de elmentos nulos de sr.

Que linda emocion saber que pronto aprendere pandas

También podemos acceder a los valores según su posición en una serie como una lista en python sin importar si sus indices son numeros o no.

>>> sr = pd.Series(np.random.randint(0, 5 , size=10), index=list('ABCDEFHGIJ'))

>>> sr[3:5]
D    1
E    1
dtype: int64

Una serie es como una diccionario donde a cada valor le corresponde un indice, nos permite hacer muchas operaciones que con las listas no seria facil de hacer.

¿En en este caso se hace uso de las reglas generales del codigo python?, es decir, los espacios, los # hashtag, las minusuculas, los guiones bajos “_”.

Hasta los momentos muy satisfecho con el desarrollo del curso

Y nosotros que?

dic_data={"Ven":845,"Ecu":768,"Per":986,"Bol":864,"Chl":1020}```
<h3>What’s a Serie?</h3>

Technically, Pandas Series is a one-dimensional labeled array capable of holding any data type. So, in terms of Pandas DataStructure, A Series represents a single column in memory, which is either independent or belongs to a Pandas DataFrame.

Cuando tenía muchos datos y quería filtrar rápido, intenté de todo, ahora se que algo útil es simplemente usar “[ cualquier condición ]” justo después de la variable.

super

Hice un Notebook en colab con apuntes paso a paso de esta clase, explicando que hace cada método visto en clase. Se los comparto en caso de que les sea de utilidad

https://colab.research.google.com/github/bl00p1ng/Curso-analisis-de-datos-con-Pandas-y-Python/blob/main/series_indexacion_seleccion_de_datos.ipynb

Tengo la sensación que …isnull() en su momento me sacará de muchos aprietos. 😃

Dejo el link para la documentación de Pandas en la clase Series.

excelente