{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "
\n", " \n", " \"Open\n", " \n", "
\n", "
\n", "

\n", " 💡 Si el botó no funciona: Copia i enganxa aquesta URL al teu navegador:
\n", " \n", "https://colab.research.google.com/github/wisaaco/TallerPythonFEE/blob/main/notebooks/4_PandasModificacio.ipynb\n", " \n", "

\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# Unitat 4. Modificació\n", "A més de fer seleccions, en alguns moments necessitarem incorporar nova informació a les nostres taules de dades.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df2 = pd.DataFrame([('Foreign Cinema', 'Restaurant', 289.0),\n", " ('Liho Liho', 'Restaurant', 224.0),\n", " ('500 Club', 'bar', 80.5),\n", " ('The Square', 'bar', 25.30)],\n", " columns=('name', 'type', 'AvgBill')\n", " )\n", "df2" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Afegir columnes\n", "\n", "Tenim diverses maneres d'afegir columnes a un _dataFrame_:\n", "\n", "- Mitjançant el nom de la columna que volem afegir, tal com afegim una clau nova a un diccionari.\n", "- `insert`: és un mètode que necessita 3 paràmetres. La posició on volem afegir la columna (`loc`), el seu nom (`column`) i la llista de valors (`value`).\n", "- `assign`: molt semblant a l'anterior, però permet afegir múltiples columnes.\n", "\n", "Vegem-ne alguns exemples:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df2['Day'] = \"Monday\" # Com un diccionari\n", "df2" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df2['Day'] = ['Monday', 'Tuesday', 'Wednesday', 'Thursday']\n", "df2" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Emprarem el mètode insert. Indicant on volem inserir aquesta columna amb el paràmetre loc\n", "\n", "df2.insert(loc=1, column=\"Stars\", value=[2,2,3,4])\n", "df2" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "El mètode `assing` permet afegir múltiples columnes en una sola operació. És interessant veure que la columna anomenada _AvgHalfBill_ és el resultat de dividir una columna entre 2." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df3 = df2.assign(AvgHalfBill=df2.AvgBill / 2, Michelin_Star=3)\n", "df3" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Afegir files\n", "\n", "Per afegir files a un _dataframe_ tenim\n", "\n", "- `concat`: concatena dos o més _dataFrames_ separats per comes." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df_files = df2.copy() # Fem una còpia de tota la informació\n", "\n", "#Cream un diccionari\n", "fila = {\"name\":\"Isaacs\", \"type\":\"bar\" ,\"AvgBill\":[148.2], \"day\":\"Friday\"}\n", "\n", "nou_df = pd.concat([df_files, pd.DataFrame(fila)])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "nou_df" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Eliminar columnes i files\n", "\n", "Molts cops tendrem la necessitat d'eliminar informació que no ens és interessant.\n", "\n", "### Columnes\n", "\n", "Tenim el mètode `drop` que ens proporciona un nou _dataFrame_ sense la(es) fila(es) o la(les) columna(es) que seleccionem.\n", "Si volem eliminar columnes podem fer-ho especificant la llista de columnes al paràmetre `columns` de la següent manera:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df_no_michelin = df3.drop(columns=[\"Michelin_Star\"]) # Eliminamos la última columna que hemos creado\n", "df_no_michelin" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Anem a veure com ha quedat el dataframe del qual hem eliminat una columna:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df3" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Files\n", "Per poder eliminar files, fem servir la mateixa funció `drop`, aquesta vegada sense el paràmetre que hem fet servir anteriorment, simplement indiquem els índexs a eliminar:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df_less_rows = df_no_michelin.drop([1,3])\n", "df_less_rows" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Feines\n", "Fer l'activitat 1.2 del _homework_" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [] } ], "metadata": { "kernelspec": { "display_name": "my3110", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "3.11.0" } }, "nbformat": 4, "nbformat_minor": 0 }