Pandas Basics
Pandas DataFrames
Pandas es una herramienta de manipulación de datos de alto nivel desarrollada por Wes McKinney. Es construido con el paquete Numpy y su estructura de datos clave es llamada el DataFrame. El DataFrame te permite almacenar y manipular datos tabulados en filas de observaciones y columnas de variables.
Hay varias maneras de crear un DataFrame. Una es usar un diccionario. Por ejemplo:
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImRpY3QgPSB7XCJjb3VudHJ5XCI6IFtcIkJyYXppbFwiLCBcIlJ1c3NpYVwiLCBcIkluZGlhXCIsIFwiQ2hpbmFcIiwgXCJTb3V0aCBBZnJpY2FcIl0sXG4gICAgICAgXCJjYXBpdGFsXCI6IFtcIkJyYXNpbGlhXCIsIFwiTW9zY293XCIsIFwiTmV3IERlaGxpXCIsIFwiQmVpamluZ1wiLCBcIlByZXRvcmlhXCJdLFxuICAgICAgIFwiYXJlYVwiOiBbOC41MTYsIDE3LjEwLCAzLjI4NiwgOS41OTcsIDEuMjIxXSxcbiAgICAgICBcInBvcHVsYXRpb25cIjogWzIwMC40LCAxNDMuNSwgMTI1MiwgMTM1NywgNTIuOThdIH1cblxuaW1wb3J0IHBhbmRhcyBhcyBwZFxuYnJpY3MgPSBwZC5EYXRhRnJhbWUoZGljdClcbnByaW50KGJyaWNzKSJ9
Como puedes ver con el nuevo DataFrame brics
, Pandas tiene asignada una clave para cada país como valores numéricos de 0 a 4. Si deseas tener diferentes valores de índice, por ejemplo el código del país de dos letras, tambien puedes hacerlo facilmente.
eyJsYW5ndWFnZSI6InB5dGhvbiIsInByZV9leGVyY2lzZV9jb2RlIjoiZGljdCA9IHtcImNvdW50cnlcIjogW1wiQnJhemlsXCIsIFwiUnVzc2lhXCIsIFwiSW5kaWFcIiwgXCJDaGluYVwiLCBcIlNvdXRoIEFmcmljYVwiXSxcbiAgICAgICBcImNhcGl0YWxcIjogW1wiQnJhc2lsaWFcIiwgXCJNb3Njb3dcIiwgXCJOZXcgRGVobGlcIiwgXCJCZWlqaW5nXCIsIFwiUHJldG9yaWFcIl0sXG4gICAgICAgXCJhcmVhXCI6IFs4LjUxNiwgMTcuMTAsIDMuMjg2LCA5LjU5NywgMS4yMjFdLFxuICAgICAgIFwicG9wdWxhdGlvblwiOiBbMjAwLjQsIDE0My41LCAxMjUyLCAxMzU3LCA1Mi45OF0gfVxuaW1wb3J0IHBhbmRhcyBhcyBwZFxuYnJpY3MgPSBwZC5EYXRhRnJhbWUoZGljdCkiLCJzYW1wbGUiOiIjIFNldCB0aGUgaW5kZXggZm9yIGJyaWNzXG5icmljcy5pbmRleCA9IFtcIkJSXCIsIFwiUlVcIiwgXCJJTlwiLCBcIkNIXCIsIFwiU0FcIl1cblxuIyBQcmludCBvdXQgYnJpY3Mgd2l0aCBuZXcgaW5kZXggdmFsdWVzXG5wcmludChicmljcykiLCJzb2x1dGlvbiI6ImJyaWNzLmluZGV4ID0gW1wiQlJcIiwgXCJSVVwiLCBcIklOXCIsIFwiQ0hcIiwgXCJTQVwiXVxucHJpbnQoYnJpY3MpIiwic2N0Ijoic3VjY2Vzc19tc2coXCJHcmVhdCBqb2IhXCIpIn0=
Otra manera de crear un DataFRame es importando un archivo csv usando Pandas. Ahora, el csv cars.csv
es almacenado y puede ser importado usando pd.read_csv
:
eyJsYW5ndWFnZSI6InB5dGhvbiIsInByZV9leGVyY2lzZV9jb2RlIjoiZiA9IG9wZW4oJ2NhcnMuY3N2JywgXCJ3XCIpXG5mLndyaXRlKFwiXCJcIixjYXJzX3Blcl9jYXAsY291bnRyeSxkcml2ZXNfcmlnaHRcblVTLDgwOSxVbml0ZWQgU3RhdGVzLFRydWVcbkFVUyw3MzEsQXVzdHJhbGlhLEZhbHNlXG5KQVAsNTg4LEphcGFuLEZhbHNlXG5JTiwxOCxJbmRpYSxGYWxzZVxuUlUsMjAwLFJ1c3NpYSxUcnVlXG5NT1IsNzAsTW9yb2NjbyxUcnVlXG5FRyw0NSxFZ3lwdCxUcnVlXCJcIlwiKVxuZi5jbG9zZSgpIiwic2FtcGxlIjoiIyBJbXBvcnQgcGFuZGFzIGFzIHBkXG5pbXBvcnQgcGFuZGFzIGFzIHBkXG5cbiMgSW1wb3J0IHRoZSBjYXJzLmNzdiBkYXRhOiBjYXJzXG5jYXJzID0gcGQucmVhZF9jc3YoJ2NhcnMuY3N2JylcblxuIyBQcmludCBvdXQgY2Fyc1xucHJpbnQoY2FycykiLCJzb2x1dGlvbiI6IiMgSW1wb3J0IHBhbmRhcyBhcyBwZFxuaW1wb3J0IHBhbmRhcyBhcyBwZFxuXG4jIEltcG9ydCB0aGUgY2Fycy5jc3YgZGF0YTogY2Fyc1xuY2FycyA9IHBkLnJlYWRfY3N2KCdjYXJzLmNzdicpXG5cbiMgUHJpbnQgb3V0IGNhcnNcbnByaW50KGNhcnMpIiwic2N0Ijoic3VjY2Vzc19tc2coXCJHcmVhdCBqb2IhXCIpIn0=
Indexando DataFrames
Hay varias maneras de indexar un DataFrame de Pandas. Una de las más sencillas es usar la notación de corchetes.
En el ejemplo de debajo, puedes usar corchetes para seleccionar una columna del DataFrame cars
. Puedes usar corchetes simples o dobles. Los corchetes simples tienen salida a Pandas Series, mientras que los corchetes dobles tendrán salida a a Pandas DataFrame.
eyJsYW5ndWFnZSI6InB5dGhvbiIsInByZV9leGVyY2lzZV9jb2RlIjoiZiA9IG9wZW4oJ2NhcnMuY3N2JywgXCJ3XCIpXG5mLndyaXRlKFwiXCJcIixjYXJzX3Blcl9jYXAsY291bnRyeSxkcml2ZXNfcmlnaHRcblVTLDgwOSxVbml0ZWQgU3RhdGVzLFRydWVcbkFVUyw3MzEsQXVzdHJhbGlhLEZhbHNlXG5KQVAsNTg4LEphcGFuLEZhbHNlXG5JTiwxOCxJbmRpYSxGYWxzZVxuUlUsMjAwLFJ1c3NpYSxUcnVlXG5NT1IsNzAsTW9yb2NjbyxUcnVlXG5FRyw0NSxFZ3lwdCxUcnVlXCJcIlwiKVxuZi5jbG9zZSgpIiwic2FtcGxlIjoiIyBJbXBvcnQgcGFuZGFzIGFuZCBjYXJzLmNzdlxuaW1wb3J0IHBhbmRhcyBhcyBwZFxuY2FycyA9IHBkLnJlYWRfY3N2KCdjYXJzLmNzdicsIGluZGV4X2NvbCA9IDApXG5cbiMgUHJpbnQgb3V0IGNvdW50cnkgY29sdW1uIGFzIFBhbmRhcyBTZXJpZXNcbnByaW50KGNhcnNbJ2NhcnNfcGVyX2NhcCddKVxuXG4jIFByaW50IG91dCBjb3VudHJ5IGNvbHVtbiBhcyBQYW5kYXMgRGF0YUZyYW1lXG5wcmludChjYXJzW1snY2Fyc19wZXJfY2FwJ11dKVxuXG4jIFByaW50IG91dCBEYXRhRnJhbWUgd2l0aCBjb3VudHJ5IGFuZCBkcml2ZXNfcmlnaHQgY29sdW1uc1xucHJpbnQoY2Fyc1tbJ2NhcnNfcGVyX2NhcCcsICdjb3VudHJ5J11dKSIsInNvbHV0aW9uIjoiIyBJbXBvcnQgcGFuZGFzIGFuZCBjYXJzLmNzdlxuaW1wb3J0IHBhbmRhcyBhcyBwZFxuY2FycyA9IHBkLnJlYWRfY3N2KCdjYXJzLmNzdicsIGluZGV4X2NvbCA9IDApXG5cbiMgUHJpbnQgb3V0IGNvdW50cnkgY29sdW1uIGFzIFBhbmRhcyBTZXJpZXNcbnByaW50KGNhcnNbJ2NhcnNfcGVyX2NhcCddKVxuXG4jIFByaW50IG91dCBjb3VudHJ5IGNvbHVtbiBhcyBQYW5kYXMgRGF0YUZyYW1lXG5wcmludChjYXJzW1snY2Fyc19wZXJfY2FwJ11dKVxuXG4jIFByaW50IG91dCBEYXRhRnJhbWUgd2l0aCBjb3VudHJ5IGFuZCBkcml2ZXNfcmlnaHQgY29sdW1uc1xucHJpbnQoY2Fyc1tbJ2NhcnNfcGVyX2NhcCcsICdjb3VudHJ5J11dKSIsInNjdCI6InN1Y2Nlc3NfbXNnKFwiR3JlYXQgam9iIVwiKSJ9
Los corchetes también pueden usarse para acceder a observaciones (filas) desde un DataFrame. Por ejemplo:
eyJsYW5ndWFnZSI6InB5dGhvbiIsInByZV9leGVyY2lzZV9jb2RlIjoiZiA9IG9wZW4oJ2NhcnMuY3N2JywgXCJ3XCIpXG5mLndyaXRlKFwiXCJcIixjYXJzX3Blcl9jYXAsY291bnRyeSxkcml2ZXNfcmlnaHRcblVTLDgwOSxVbml0ZWQgU3RhdGVzLFRydWVcbkFVUyw3MzEsQXVzdHJhbGlhLEZhbHNlXG5KQVAsNTg4LEphcGFuLEZhbHNlXG5JTiwxOCxJbmRpYSxGYWxzZVxuUlUsMjAwLFJ1c3NpYSxUcnVlXG5NT1IsNzAsTW9yb2NjbyxUcnVlXG5FRyw0NSxFZ3lwdCxUcnVlXCJcIlwiKVxuZi5jbG9zZSgpIiwic2FtcGxlIjoiIyBJbXBvcnQgY2FycyBkYXRhXG5pbXBvcnQgcGFuZGFzIGFzIHBkXG5jYXJzID0gcGQucmVhZF9jc3YoJ2NhcnMuY3N2JywgaW5kZXhfY29sID0gMClcblxuIyBQcmludCBvdXQgZmlyc3QgNCBvYnNlcnZhdGlvbnNcbnByaW50KGNhcnNbMDo0XSlcblxuIyBQcmludCBvdXQgZmlmdGggYW5kIHNpeHRoIG9ic2VydmF0aW9uXG5wcmludChjYXJzWzQ6Nl0pIiwic29sdXRpb24iOiIjIEltcG9ydCBjYXJzIGRhdGFcbmltcG9ydCBwYW5kYXMgYXMgcGRcbmNhcnMgPSBwZC5yZWFkX2NzdignY2Fycy5jc3YnLCBpbmRleF9jb2wgPSAwKVxuXG4jIFByaW50IG91dCBmaXJzdCA0IG9ic2VydmF0aW9uc1xucHJpbnQoY2Fyc1swOjRdKVxuXG4jIFByaW50IG91dCBmaWZ0aCBhbmQgc2l4dGggb2JzZXJ2YXRpb25cbnByaW50KGNhcnNbNDo2XSkiLCJzY3QiOiJzdWNjZXNzX21zZyhcIkdyZWF0IGpvYiFcIikifQ==
También puedes usar loc
e iloc
para realizar casi cualquier operación de selección de datos. loc
está basado en etiquetas, lo que significa que puedes especificar filas y columnas basadas en sus etiquetas de filas y columnas. iloc
es un índice basado en enteros, así que tienes que especificar las filas y columnas con su índice entero tal y como hiciste en el ejercicio anterior.
eyJsYW5ndWFnZSI6InB5dGhvbiIsInByZV9leGVyY2lzZV9jb2RlIjoiZiA9IG9wZW4oJ2NhcnMuY3N2JywgXCJ3XCIpXG5mLndyaXRlKFwiXCJcIixjYXJzX3Blcl9jYXAsY291bnRyeSxkcml2ZXNfcmlnaHRcblVTLDgwOSxVbml0ZWQgU3RhdGVzLFRydWVcbkFVUyw3MzEsQXVzdHJhbGlhLEZhbHNlXG5KQVAsNTg4LEphcGFuLEZhbHNlXG5JTiwxOCxJbmRpYSxGYWxzZVxuUlUsMjAwLFJ1c3NpYSxUcnVlXG5NT1IsNzAsTW9yb2NjbyxUcnVlXG5FRyw0NSxFZ3lwdCxUcnVlXCJcIlwiKVxuZi5jbG9zZSgpIiwic2FtcGxlIjoiIyBJbXBvcnQgY2FycyBkYXRhXG5pbXBvcnQgcGFuZGFzIGFzIHBkXG5jYXJzID0gcGQucmVhZF9jc3YoJ2NhcnMuY3N2JywgaW5kZXhfY29sID0gMClcblxuIyBQcmludCBvdXQgb2JzZXJ2YXRpb24gZm9yIEphcGFuXG5wcmludChjYXJzLmlsb2NbMl0pXG5cbiMgUHJpbnQgb3V0IG9ic2VydmF0aW9ucyBmb3IgQXVzdHJhbGlhIGFuZCBFZ3lwdFxucHJpbnQoY2Fycy5sb2NbWydBVVMnLCAnRUcnXV0pIiwic29sdXRpb24iOiIjIEltcG9ydCBjYXJzIGRhdGFcbmltcG9ydCBwYW5kYXMgYXMgcGRcbmNhcnMgPSBwZC5yZWFkX2NzdignY2Fycy5jc3YnLCBpbmRleF9jb2wgPSAwKVxuXG4jIFByaW50IG91dCBvYnNlcnZhdGlvbiBmb3IgSmFwYW5cbnByaW50KGNhcnMuaWxvY1syXSlcblxuIyBQcmludCBvdXQgb2JzZXJ2YXRpb25zIGZvciBBdXN0cmFsaWEgYW5kIEVneXB0XG5wcmludChjYXJzLmxvY1tbJ0FVUycsICdFRyddXSkiLCJzY3QiOiJzdWNjZXNzX21zZyhcIkdyZWF0IGpvYiFcIikifQ==