Lectura i escriptura de dades amb Pandas
Aquesta lliçó explica com llegir i escriure dades en diferents formats utilitzant la biblioteca Pandas de Python. Pandas proporciona funcions senzilles per carregar dades des de fitxers CSV, Excel, JSON i bases de dades SQL, així com per exportar dades a aquests formats.
Recordeu que per utilitzar Pandas cal importar-la habitualment amb l'alias pd:
import pandas as pdLectura de fitxers
Pandas proporciona funcions per carregar dades des de diversos formats. Totes retornen un DataFrame.
CSV
La funció read_csv llegeix fitxers de valors separats per comes:
df = pd.read_csv('dades.csv')Alguns paràmetres útils:
sep: caràcter separador (per defecte,)header: número de fila amb els noms de les columnes (per defecte0)index_col: columna a utilitzar com a índexusecols: llista de columnes a llegirdtype: diccionari amb els tipus de dades de les columnesna_values: valors a interpretar com a NaN
df = pd.read_csv('dades.csv', sep=';', index_col=0, usecols=['nom', 'edat'])Excel
La funció read_excel llegeix fitxers d'Excel:
df = pd.read_excel('dades.xlsx')Paràmetres rellevants:
sheet_name: nom o índex del full a llegir (per defecte el primer)header,index_col,usecols: igual que en CSV
df = pd.read_excel('dades.xlsx', sheet_name='Fulls1')JSON
La funció read_json llegeix fitxers JSON:
df = pd.read_json('dades.json')El paràmetre orient especifica l'estructura del JSON:
'split': diccionari amb clausindex,columnsidata'records': llista de diccionaris (un per fila)'index': diccionari de diccionaris indexat per files'columns': diccionari de diccionaris indexat per columnes'values': només els valors com a array 2D
df = pd.read_json('dades.json', orient='records')SQL
La funció read_sql llegeix dades d'una base de dades SQL (sqlite3 per exemple):
import sqlite3
conn = sqlite3.connect('basedades.db')
df = pd.read_sql('SELECT * FROM taula', conn)
conn.close()Es pot passar una consulta SQL o el nom d'una taula. Cal una connexió prèvia a la base de dades.
Escriptura de fitxers
Els DataFrames es poden exportar a diferents formats mitjançant mètodes específics.
Exportació a CSV
El mètode to_csv escriu un DataFrame en format CSV:
df.to_csv('sortida.csv')Paràmetres comuns:
sep: caràcter separadorindex: si s'ha d'incloure l'índex (per defecteTrue)header: si s'han d'incloure els noms de les columnes (per defecteTrue)columns: llista de columnes a exportarna_rep: cadena per representar valors NaN
df.to_csv('sortida.csv', sep=';', index=False)Exportació a Excel
El mètode to_excel escriu un DataFrame en format Excel:
df.to_excel('sortida.xlsx')Paràmetres rellevants:
sheet_name: nom del full (per defecte'Sheet1')index: si s'ha d'incloure l'índexcolumns: llista de columnes a exportar
df.to_excel('sortida.xlsx', sheet_name='Resultats', index=False)Exportació a JSON
El mètode to_json escriu un DataFrame en format JSON:
df.to_json('sortida.json')El paràmetre orient controla l'estructura (igual que en read_json):
df.to_json('sortida.json', orient='records', indent=2)El paràmetre indent afegeix indentació per millorar la llegibilitat.
Consideracions generals
Tots els mètodes d'exportació accepten el paràmetre index per controlar si s'escriu l'índex del DataFrame (l'índex és l'etiqueta que identifica cada fila del DataFrame i permet accedir-hi directament). Per defecte és True, però sovint és convenient desactivar-lo amb index=False.
df.to_csv('dades.csv', index=False)
df.to_excel('dades.xlsx', index=False)
df.to_json('dades.json', orient='records')
Jordi Petit
Lliçons.jutge.org
© Universitat Politècnica de Catalunya, 2025
