Python 3 min read

How to read CSV files with or without Pandas

Read CSV without Pandas

Full form of CSV: Comma Separated Values

CSV files contain lists of data separated by commas in plain text format. Basically we use CSV files to exchange and transfer data from one destination to another. And we can read it with or without Pandas.

To download dataset please visit Here

How to read CSV file with Pandas

#Import Pandas library

import pandas as pd

#Import the Dataset file. Pandas has read_csv method that help to load .csv file

file_path = "iris.csv" data = pd.read_csv(file_path)

#Let's see first five datapoints

data.head(5)

#Output: You will get the first 5 rows of the Dataset

#['sepal.length', 'sepal.width', 'petal.length', 'petal.width', 'variety']
#['5.1', '3.5', '1.4', '.2', 'Setosa']
#['4.9', '3', '1.4', '.2', 'Setosa']
#['4.7', '3.2', '1.3', '.2', 'Setosa']
#['4.6', '3.1', '1.5', '.2', 'Setosa']
#['5', '3.6', '1.4', '.2', 'Setosa']

How to read CSV file without using the Pandas library

CSV Python's built-in library can be used to read csv files without using pandas. Here we are using the reader() function to read the data from the file.

# Import reader module from csv Library
from csv import reader

#read the CSV file

def load_csv(filename): # Open file in read mode file = open(filename,"r") # Reading file lines = reader(file)

# Converting into a list data = list(lines) return data

if name == "main": # Path of the dataset file_path = "iris.csv" data = load_csv(file_path)

# Let's print the first 5 datapoints for row in data[:6]: print(row, end = "\n")

#Output: You will get the first 5 rows of the Dataset as given below.

#['sepal.length', 'sepal.width', 'petal.length', 'petal.width', 'variety']
#['5.1', '3.5', '1.4', '.2', 'Setosa']
#['4.9', '3', '1.4', '.2', 'Setosa']
#['4.7', '3.2', '1.3', '.2', 'Setosa']
#['4.6', '3.1', '1.5', '.2', 'Setosa']
#['5', '3.6', '1.4', '.2', 'Setosa']

Although load_csv() is a helpful function, it has some limitations. While reading files, it doesn't handle empty spaces/row. We can solve this problem by using a list.

To solve this problem you can use the below code snippets.

Let see

#Load the CSV file

def load_csv(filename): data = list() # Open file in read mode file = open(filename,"r") # Reading file lines = reader(file) csv_reader = reader(file) for row in csv_reader: if not row: continue data.append(row)

return data

if name == "main": # Path of the dataset filename = "iris.csv" data = load_csv(filename)

# Let's print the first 5 datapoints for row in data[:6]: print(row, end = "\n")

#['sepal.length', 'sepal.width', 'petal.length', 'petal.width', 'variety']

#['5.1', '3.5', '1.4', '.2', 'Setosa']
#['4.9', '3', '1.4', '.2', 'Setosa']
#['4.7', '3.2', '1.3', '.2', 'Setosa']
#['4.6', '3.1', '1.5', '.2', 'Setosa']
#['5', '3.6', '1.4', '.2', 'Setosa']

Thanks 🙌 for visiting InDeepData.

Share this article: