Topics in this subject
Pandas 1 min read Updated 4 Aug 2026

2. Reading Data

df = pd.readcsv('data.csv')

df = pd.read_csv('data.csv')
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
df = pd.read_json('data.json')
df = pd.read_sql('SELECT * FROM users', conn)
df = pd.read_parquet('data.parquet')

Useful read_csv parameters#

Parameter Purpose
usecols=['a','b'] read only certain columns (saves memory)
nrows=1000 read only the first N rows
dtype={'id': 'int32'} force column types
parse_dates=['date'] parse date columns
index_col='id' set a column as the index
na_values=['NA','?'] extra strings to treat as NaN
chunksize=10000 iterate in chunks (huge files)
sep=';' custom delimiter
encoding='utf-8' handle encoding issues
df = pd.read_csv('sales.csv',
                 usecols=['date', 'amount', 'region'],
                 parse_dates=['date'],
                 dtype={'amount': 'float32'})

🚀 Best Practice: For very large CSVs, combine usecols, dtype, and chunksize to stay within memory. Parquet is far faster and smaller than CSV for repeated reads.

⚠️ Common Mistake: Forgetting parse_dates leaves date columns as strings — you can't do date math on them.