Back to Python Notes
Topic #258

Reading CSV

Learn how to load data from CSV files into Python using the Pandas library, enabling efficient data analysis and manipulation.

What it is

Reading a CSV (Comma-Separated Values) file involves parsing text-based tabular data into a structured format that Python can process. The most common approach uses the pandas library, which provides the read_csv() function. This function converts raw CSV text into a DataFrame, a two-dimensional labeled data structure similar to a spreadsheet or SQL table. Related terms include "delimiter" (the character separating values), "header" (the first row containing column names), and "index" (row labels).

Why it matters

  • Efficiency: Pandas handles large datasets faster than manual parsing with Python's built-in csv module.
  • Data Integrity: Automatically infers data types (integers, floats, strings) for each column.
  • Analysis Ready: Returns a DataFrame immediately compatible with filtering, grouping, and visualization tools.
  • Flexibility: Supports various delimiters, encoding formats, and missing value indicators out of the box.

Syntax or steps

The basic syntax requires importing pandas and calling read_csv() with a file path. Optional parameters allow customization of how the file is interpreted.

import pandas as pd

# Basic usage
df = pd.read_csv("filename.csv")

# Common optional parameters
df = pd.read_csv(
    "filename.csv",
    sep=",",          # Delimiter character
    header=0,         # Row number to use as column names
    index_col=None,   # Column to use as row index
    na_values=["N/A"] # Strings to interpret as missing data
)

Example

Assume we have a file named sales.csv with the following content:

Date,Product,Units,Price
2023-01-01,Widget,10,5.99
2023-01-02,Gadget,5,12.50
2023-01-03,Widget,8,5.99

We load this data and inspect it:

import pandas as pd

# Load the CSV file
df = pd.read_csv("sales.csv")

# Display the first few rows
print(df.head())

# Check data types
print(df.dtypes)

Explanation:

  • pd.read_csv("sales.csv") reads the file and creates a DataFrame.
  • df.head() prints the first five rows, confirming the data loaded correctly.
  • df.dtypes shows that Units is an integer, Price is a float, and others are objects (strings). Pandas inferred these automatically.

Common mistakes

  • File Path Errors: Using incorrect relative paths causes FileNotFoundError. Fix by using absolute paths or ensuring the script runs from the correct directory.
  • Wrong Delimiter: Assuming all CSVs use commas. Some use semicolons or tabs. Fix by specifying sep=';' or sep='\t'.
  • Missing Header Handling: If a file has no header, Pandas treats the first row as data. Fix by setting header=None and optionally providing column names via names=[...].
  • Large Files: Loading entire huge files into memory crashes scripts. Fix by using chunksize parameter to read in batches.

When to use it

Compare Pandas' read_csv() with Python's standard library csv module.

Feature Pandas read_csv() Standard csv Module
Speed Fast (C-optimized) Slower (Pure Python)
Data Structure Returns DataFrame (analytical) Returns iterator of lists (raw)
Type Inference Automatic Manual conversion required
Best For Data analysis, ML, reporting Simple reading/writing without dependencies

Use Pandas when you need to analyze or transform data. Use the standard csv module only if you cannot install external libraries or need minimal overhead for simple tasks.

Practice

Guided Exercise: Create a small CSV file named test.csv with columns Name,Age,City. Load it using Pandas and print the average age.

Challenge: Modify the code to handle a file where missing ages are represented by the string "unknown". Ensure these are treated as NaN (Not a Number) so they don't break calculations.

Hint: Use the na_values parameter in read_csv().

Quick check

Question: How do you specify that a CSV file uses semicolons instead of commas as separators?

Answer: Pass the argument sep=';' to the read_csv() function.

Summary

Reading CSVs with Pandas is a foundational skill for data work in Python, offering speed and automatic type handling. By mastering read_csv() and its parameters, you can efficiently ingest diverse tabular data sources for immediate analysis.

Want to go beyond the notes?

Join Coding Now Tech Institute's Python course — live mentorship, real projects, and 100% placement support.

Enroll Now — Free Demo Available

Reading CSV – FAQs

Quick answers about learning Reading CSV in Python.

This free note from Coding Now Tech Institute explains Reading CSV in Python — concept, syntax and worked code examples you can copy, run and revise before interviews.
Yes. Every Python topic on Coding Now Tech Institute, including Reading CSV, is 100% free with no signup required.
With focused practice, most students grasp Reading CSV in 1–3 days from these notes; pairing it with Coding Now Tech Institute's mentor-led course takes you to job-ready depth faster.
Use the code examples in this note, then ask doubts for free on the Coding Now Tech Institute Community (/community) — expert instructors answer within 24 hours.
Call NowEnroll Now