Adventures in Machine Learning

Mastering CSV Files with Pandas: Reading Filtering and Customizing Output

In today’s world, data plays a vital role in almost every sector, be it finance, healthcare, or marketing. In such a scenario, handling data with utmost efficiency and precision becomes imperative.

And this is where Pandas comes in as a savior. Pandas, a powerful data manipulation tool, provides numerous functions to read, manipulate and analyze data.

In this article, we’ll focus on one of the most crucial aspects of Pandas, i.e., reading CSV files using Pandas. We’ll explore various parameters and syntax options that would make the task of reading CSV files more efficient and convenient.

Reading CSV files using Pandas:

Let’s start with the basics. Pandas’ read_csv() function is the primary method of reading CSV files.

Here’s its syntax:



pandas.read_csv(filepath_or_buffer, sep=’,’, header=’infer’, usecols=None,

skiprows=None, nrows=None, index_col=None)


* `filepath_or_buffer`: Path or URL to theCSVfile. * `sep`: Delimiter to use while parsing the CSV file.

Default is ‘,’. * `header`: Row(s) to use as the column names.

By default, it considers the first row as header. * `usecols`: A list of column names to include in the output.

By default, it reads all columns. * `skiprows`: A list of row numbers (starting from 0) to skip while reading CSV.

* `nrows`: Number of rows to read from the CSV file. * `index_col`: The column(s) to use as the row index/labels of the DataFrame.

Now let’s delve into some of these parameters in detail. 1) Reading a CSV file without parameters:

Let’s assume we have a CSV file named ‘data.csv,’ and we want to read it using Pandas.

Here’s what we need to do:


import pandas as pd

df = pd.read_csv(‘data.csv’)


By default, Pandas assumes that the separator is ‘,’ and takes the first row as header. The read_csv function reads all the columns and returns a DataFrame.

2) Using a different separator in CSV file:

While dealing with CSV files, it’s common to encounter pipe-separated (|), tab-separated (t), or semicolon-separated (;) files. In such cases, the ‘sep’ parameter comes in handy.


import pandas as pd

df2 = pd.read_csv(‘data2.csv’, sep=’;’)


In the above example, we’re reading a CSV file named ‘data2.csv,’ where the values are separated by semicolons. Here, we explicitly mention the separator using the `sep` parameter.

3) Displaying specific columns in output:

At times, we may not require every column in the CSV file, but only a few. To read only selected columns, we can use the `usecols` parameter.


import pandas as pd

df3 = pd.read_csv(‘data.csv’, usecols=[‘fruit’, ‘quantity’])


In the `df3` dataframe, only the ‘fruit’ and ‘quantity’ columns are present, which could be useful when dealing with voluminous data. 4) Reading only n rows of a CSV file:

If the CSV file is significantly large and we want to read only the first n rows, we could use the `nrows` parameter.

“` python

import pandas as pd

df4 = pd.read_csv(‘data.csv’, nrows = 1000)


Here, we’re only interested in reading the first 1000 rows of the CSV. 5) Skipping rows while reading CSV:

While reading CSV, we may encounter some rows that we don’t need.

Using the `skiprows` parameter helps in skipping those rows. “` python

import pandas as pd

df5 = pd.read_csv(‘data.csv’, skiprows = [1,3,5])


In the above example, rows 1,3 and 5 are skipped while reading the CSV. 6) Setting a column as the index of the DataFrame:

By default, the read_csv function uses a RangeIndex object as the DataFrame’s index.

We can assign a specific column in the CSV to be the DataFrame’s index using the `index_col` parameter. “` python

import pandas as pd

df6 = pd.read_csv(‘data.csv’, index_col =’fruit’)


Here, the ‘fruit’ column is assigned as the index of the DataFrame. Customizing output using Pandas read_csv() parameters:

Apart from the parameters discussed above, the `read_csv()` function offers several other parameters that allow fine-tuning of the output.

1) Selecting specific columns using header parameter:

While reading the CSV file, the first row is considered as the header row. However, there might be scenarios where we must define the header ourselves.

We can use the `header` parameter for this purpose. “` python

import pandas as pd

df = pd.read_csv(‘data.csv’, header = None, names = [‘Fruit’, ‘Quantity’, ‘Price’])


In the above example, we are reading a CSV file containing data with no headers. Thus, we define the column names manually using the `names` parameter.

2) Using different encoding to read CSV:

Sometimes, the file we want to read is in a non-standard encoding format, which Pandas might not recognize. We can use the `encoding` parameter to specify the file’s encoding.

“` python

import pandas as pd

df = pd.read_csv(‘data.csv’, encoding = “ISO-8859-1”)


Here, the `read_csv()` function reads a CSV file encoded in ISO-8859-1 format. 3) Handling missing or corrupted data:

In CSV files, it’s highly probable that we might encounter missing or corrupted data.

The `read_csv()` function provides a parameter, `na_values`, which allows us to specify values to be treated as NaN values (not a number). “` python

import pandas as pd

df = pd.read_csv(‘data.csv’, na_values=[‘?’, ‘-‘])


In the above example, ‘?’ and ‘-‘ values are treated as NaN values. 4) Closing file handle automatically after reading CSV:

When dealing with massive CSV files, it’s essential to close the file handle after reading the file to avoid any memory leaks.

Python’s `with` syntax, combined with the `read_csv()` function, automatically closes the file handle. “` python

import pandas as pd

with open(‘data.csv’, ‘r’) as f:

df = pd.read_csv(f)


The `with` syntax ensures that the file handle is closed automatically and implicitly. 5) Reading CSV files from compressed archives:

In real-world applications, CSV files may be compressed for easier storage.

We can read compressed CSV files with Pandas read_csv() function by specifying the compression type using the `compression` parameter. “` python

import pandas as pd

df = pd.read_csv(‘’, compression=’zip’)


In the above example, we’re reading a compressed CSV file in .zip format. Conclusion:

Reading a CSV file using Pandas is an essential skill for anyone working with data, and it’s vital to be familiar with various parameters and modifications read_csv() function offers.

Whether our file is large or small, well-defined or not, Pandas can handle it all. The essential syntax and parameters discussed in this article not only make the process efficient and convenient but also help us customize the output as per our requirements.

Using Pandas read_csv() is incredibly versatile, and with a little bit of practice, we can handle CSV files like a pro!

In conclusion, reading and manipulating CSV files is a crucial part of working with data, and Pandas’ read_csv() function is a powerful tool for handling this task. Through an in-depth examination of various parameters, we have explored how to read CSV files more efficiently and extract crucial information.

Parameters such as sep, usecols, nrows, and skiprows, allow us to filter the CSV content effectively and achieve better productivity. Additionally, considerations such as encoding, handling missing data, and excellent coding practice with “with” and file compression introduce even greater flexibility and functionality.

In conclusion, mastering Pandas’ read_csv() function is a must-have skill, especially for the data-handling process, and can make a massive difference in data usage and interpretation.

Popular Posts