How to Read Data From Csv File in Ruby

Intro: In this article, I will walk yous through the different ways of reading and writing CSV files in Python.

Table of Contents:

  1. What is a CSV?
  2. Reading a CSV
  3. Writing to a CSV

1. What is a CSV?

CSV stands for "Comma Separated Values." It is the simplest form of storing data in tabular form as obviously text. It is important to know to piece of work with CSV because we generally rely on CSV information in our mean solar day-to-mean solar day lives as data scientists.

Construction of CSV:

We have a file named "Salary_Data.csv." The commencement line of a CSV file is the header and contains the names of the fields/features.

Afterward the header, each line of the file is an observation/a record. The values of a tape are separated by "comma."

2. Reading a CSV

CSV files can exist handled in multiple ways in Python.

2.1 Using csv.reader

Reading a CSV using Python's inbuilt module called csv using csv.reader object.

Steps to read a CSV file:

1. Import the csv library

import csv

ii. Open the CSV file

The .open() method in python is used to open files and return a file object.

file = open('Salary_Data.csv')  type(file)

The type of file is "_io.TextIOWrapper" which is a file object that is returned by the open() method.

3. Utilize the csv.reader object to read the CSV file

csvreader = csv.reader(file)

4. Extract the field names

Create an empty list called header. Use the next() method to obtain the header.

The .next() method returns the current row and moves to the next row.

The first fourth dimension you run side by side() information technology returns the header and the next time you run information technology returns the first tape and so on.

header = [] header = next(csvreader) header

5. Excerpt the rows/records

Create an empty list called rows and iterate through the csvreader object and append each row to the rows list.

rows = [] for row in csvreader:         rows.suspend(row) rows

six. Close the file

.shut() method is used to close the opened file. In one case it is airtight, nosotros cannot perform any operations on it.

file.close()

Consummate Code:

import csv file = open up("Salary_Data.csv") csvreader = csv.reader(file) header = side by side(csvreader) print(header) rows = [] for row in csvreader:     rows.suspend(row) print(rows) file.close()

Naturally, we might forget to close an open file. To avoid that we tin use the with()statement to automatically release the resources. In simple terms, there is no need to phone call the .close() method if we are using with() statement.

Implementing the above code using with() statement:

Syntax: with open(filename, mode) as alias_filename:

Modes:

'r' – to read an existing file,
'west' – to create a new file if the given file doesn't exist and write to it,
'a' – to append to existing file content,
'+' –  to create a new file for reading and writing

import csv rows = [] with open up("Salary_Data.csv", 'r) equally file:     csvreader = csv.reader(file)     header = next(csvreader)     for row in csvreader:         rows.suspend(row) print(header) print(rows)

2.ii Using .readlines()

Now the question is – "Is information technology possible to fetch the header, rows using only open() and with() statements and without the csv library?" Permit's see…

.readlines() method is the answer. It returns all the lines in a file every bit a list. Each item of the list is a row of our CSV file.

The first row of the file.readlines() is the header and the residue of them are the records.

with open('Salary_Data.csv') as file:     content = file.readlines() header = content[:1] rows = content[1:] print(header) print(rows)

**The 'north' from the output can be removed using .strip() method.

What if we have a huge dataset with hundreds of features and thousands of records. Would information technology be possible to handle lists??

Here comes the pandas library into the picture.

2.3 Using pandas

Steps of reading CSV files using pandas

1. Import pandas library

import pandas as pd

two. Load CSV files to pandas using read_csv()

Bones Syntax: pandas.read_csv(filename, delimiter=',')

data= pd.read_csv("Salary_Data.csv") data

iii. Extract the field names

.columns is used to obtain the header/field names.

data.columns

4. Extract the rows

All the data of a data frame can be accessed using the field names.

information.Salary

iii. Writing to a CSV file

We can write to a CSV file in multiple ways.

three.one Using csv.writer

Let'southward assume nosotros are recording 3 Students data(Proper name, M1 Score, M2 Score)

header = ['Name', 'M1 Score', 'M2 Score'] data = [['Alex', 62, 80], ['Brad', 45, 56], ['Joey', 85, 98]]

Steps of writing to a CSV file:

1. Import csv library

import csv

2. Define a filename and Open up the file using open()

3. Create a csvwriter object using csv.writer()

four. Write the header

5. Write the remainder of the data

code for steps 2-five

filename = 'Students_Data.csv' with open(filename, 'west', newline="") as file:     csvwriter = csv.writer(file) # 2. create a csvwriter object     csvwriter.writerow(header) # 4. write the header     csvwriter.writerows(information) # 5. write the rest of the data

Beneath is how our CSV file looks.

3.2 Using .writelines()

Iterate through each listing and convert the list elements to a string and write to the csv file.

header = ['Name', 'M1 Score', 'M2 Score'] data = [['Alex', 62, 80], ['Brad', 45, 56], ['Joey', 85, 98]] filename = 'Student_scores.csv' with open up(filename, 'w') as file:     for header in header:         file.write(str(header)+', ')     file.write('north')     for row in data:         for ten in row:             file.write(str(ten)+', ')         file.write('n')

3.3. Using pandas

Steps to writing to a CSV using pandas

ane. Import pandas library

import pandas as pd

ii. Create a pandas dataframe using pd.DataFrame

Syntax: pd.DataFrame(data, columns)

The data parameter takes the records/observations and the columns parameter takes the columns/field names.

header = ['Proper name', 'M1 Score', 'M2 Score'] information = [['Alex', 62, eighty], ['Brad', 45, 56], ['Joey', 85, 98]] data = pd.DataFrame(data, columns=header)

iii. Write to a CSV file using to_csv()

Syntax: DataFrame.to_csv(filename, sep=',', index=False)

**separator is ',' past default.

index=Fake to remove the index numbers.

information.to_csv('Stu_data.csv', alphabetize=False)

Below is how our CSV looks like

End Notes:

Thank you for reading till the conclusion. By the finish of this article, we are familiar with dissimilar means of handling CSV files in Python.

I hope this article is informative. Feel free to share information technology with your study buddies.

References:

Bank check out the complete code from the GitHub repo.

Other Blog Posts by me

Feel gratuitous to check out my other blog posts from my Analytics Vidhya Contour.

You can find me on LinkedIn, Twitter in case yous would want to connect. I would be glad to connect with you.

For firsthand substitution of thoughts, please write to me at [email protected].

The media shown in this article are not owned by Analytics Vidhya and are used at the Author'due south discretion.

ivywhistenoter.blogspot.com

Source: https://www.analyticsvidhya.com/blog/2021/08/python-tutorial-working-with-csv-file-for-data-science/

0 Response to "How to Read Data From Csv File in Ruby"

Enregistrer un commentaire

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel