Python intermedio para ciencia de datos

Esta mañana he hecho una entrevista para un puesto de Data Scientist. Creo que todo ha ido bien!! 😀 Como mi sprint con RDF y Linked data era sobre todo para prepararme para la entrevista, hoy voy a continuar con el curso de Python intermedio que se me quedó a medias la semana pasada. No sé si voy a poder continuar con mi «estudio» durante las próximas semanas ya que tengo un proyecto de tres semanas en camino, así que me gustaría, al menos, acabar este curso.

Continúo pues con el módulo 3. Muy facilito: operadores de comparación, booleanos, control de flujo, etc.

Algunos apuntes/cosas nuevas:

  • Los operadores booleanos (and, or, not) no funcionan por sí solos en Numpy. Tendremos que usar np.logical_and(), np.logical_or(), np.logical_not().
if condition:
   expression
elif condition:
   expression
else:
   expression

Filtrar un DataFrame de Pandas

  1. Tendremos que encontrar la columna correcta. Aquí tendremos que seleccionar como output un Panda Series, no un Panda Dataframe, es decir, tendremos que hacerlo con corchetes simples. Por ejemplo: mi_dataframe[«columnaX»], mi_dataframe.loc[:, «columnaX»] o mi_dataframe.iloc[:, 2] (2 sería la columna 2).
  2. Establecer la comparación. Por ejemplo: mi_dataframe[«columnaX»] > 8. Esto nos devolverá la columna correspondiente como una Panda Series con booleans, es decir, True donde se cumpla y False donde no se cumpla esa condición.
  3. Filtrar. Podemos crear una nueva variable con la comparación. Ejemplo: is_huge = mi_dataframe[«columnaX»] > 8 . Si luego, filtramos (my_dataframe[is_huge]), obtendremos solo las filas de los elementos con la columnaX mayor de 8.

Como las filas de un dataframe son arrays de Numpy, si queremos usar los operadores lógicos/booleanos para filtrar, deberemos tener en cuenta las formas que comentábamos más arriba.

*** Módulo 3 acabado!!! ***

Empiezo el módulo 4, dedicado a los bucles.

while condition:
     expression
for var in seq:
     expression

# para iterar sobre un diccionario necesitamos el método items()
for key, value in my_dict.items(): 
...

# para iterar sobre un array multidimensional necesitamos esto
for val in np.enditer(my_array):
...

#iteraciones en DataFrames de Pandas
# esto nos dará los nombres de las columnas
for val in DataFrame:
    print(val)

# esto nos devolverá todos los datos de una fila
for lab, row in DataFrame.iterrows():
     print(lab)
     print(row)

Algunos apuntes/cosas nuevas:

enumerate() : nos devuelve el índice del elemento de una lista.

np.enditer(arrayname): nos devuelve los elementos del array en columna, no como una lista con corchetes.

Cuando iteramos sobre un diccionario el resultado estará desordenado ya que los diccionarios en Python no siguen un orden predeterminado.

*** Módulo 4 acabado!! **

Día 9: Pandas

Continúo con el curso de Python intermedio para Ciencia de Datos.

DataFrame es uno de las estrucutras de datos más populares dentro de Pandas. Se trata, básicamente, de una tabla donde podemos indicar el nombre de las columnas y las filas y, si queremos, podemos importarla desde un documento CSV (comma separated values). Para importar los datos desde un CSV:

pd.read_csv('path to the file')

Al igual que las arrays de Numpy, los datos de una estructura de datos de Pandas, pueden contener elementos de distintos tipos (string, bool, etc.). Para acceder a los distintos elementos usaremos también los corchetes [].

iloc() accederá a las filas o las columnas del documento especificando el índice de esa fila o columna.

loc() accederá a las filas o las columnas del documento especificando la etiqueta de esa fila o columna.

¡Hoy he acabado este módulo! Sólo me quedan 3 más y acabo el curso!! 😀

Día 8: MatPlotLib

Ayer empecé un poquito con el curso intermedio de Python para Ciencia de Datos de DataCamp y hoy he continuado.

He acabado el primer módulo, que habla de la librería MatPlotLib. Con ella podemos crear diferentes tipos de gráficos: histogramas, scatterplot, etc. También nos enseñan cómo ponerlo bonito, cambiando los colores, los tamaños, poniendo rótulos, etc.

Continúo con el módulo dos, dedicado a los diccionarios y la librería Pandas (otra de las que están pidiendo actualmente en casi todos los puestos a los que aplico!). Básicamente, lo que hace Pandas es crear documentos tabulares con datos. Incluso podemos importarlos de un documento CSV. Creo que esto funcionará bien para hacer algunas pruebas con word2vec (creo que probaré este tutorial)