07-25-2022, 09:17 AM
The Ultimate Guide on Converting a CSV in Python
4/5 – (1 vote)
Abstract: In this article, we’ll quickly overview the best method, respectively, to convert a CSV file to JSON, Excel, dictionary, Parquet, list, list of lists, list of tuples, text file, DataFrame, XML, NumPy array, and list of dictionaries.
In this article, you’ve learned the best ways to perform the following conversions (click to read more):
How to Convert CSV to JSON in Python?
You can convert a CSV file to a JSON file by using the following five steps:
Input CSV File:
Output JSON File:
There are many more details to it, so if this didn’t answer your question yet, go here:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert CSV to Excel (XLSX) in Python?
![[Image: image-81.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-81.png)
The most pythonic way to convert a to an (Excel) in Python is to use the Pandas library.
Note that there are many ways to customize the function in case
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to a Dictionary in Python?
![[Image: image-82.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-82.png)
The best way to convert a CSV file to a Python dictionary is to create a CSV file object using and pass it in the method. The return value is an iterable of dictionaries, one per row in the CSV file, that maps the column header from the first row to the specific row value.
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to a Parquet Format in Python?
Here’s a step-by-step approach to reading a CSV and converting its contents to a Parquet file using the Pandas library:
The code snippet to convert a CSV file to a Parquet file is quite simple (steps 4-6):
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to a List in Python?
![[Image: image-166-1024x576.png]](https://blog.finxter.com/wp-content/uploads/2022/06/image-166-1024x576.png)
Here’s the code to convert that CSV file to a list of dictionaries, one dictionary per row by using the function:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to a List of Lists in Python?
![[Image: image-83.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-83.png)
To convert a CSV file into a list of lists in Python, use the method to create a CSV file reader. Then convert the resulting object to a list using the constructor.
Output:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to a List of Tuples in Python?
![[Image: image-84.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-84.png)
To convert a CSV file into a list of tuples in Python, use to create a CSV file reader that holds an iterable of lists, one per row. Now, use the expression with a generator expression to convert each inner list to a tuple.
Here’s a simple example that converts our CSV file to a list of tuples using this approach:
Output:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to a Text File in Python?
If you want to keep the content (including the delimiter) in the CSV file unmodified, the conversion is simple: read the file and write its content into a new file using the , , and functions without importing any library.
In other words, perform the three steps to write a CSV to a TXT file unmodified:
Here’s the code snippet that solves our basic challenge:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to a Pandas DataFrame in Python?
To import a given CSV file into a newly-created Pandas DataFrame, use the function that returns a DataFrame created with the content in the CSV file .
Here’s a quick and generic code snippet showcasing this approach:
Output:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to an XML in Python?
![[Image: image-85.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-85.png)
You can convert a CSV to an XML using the following approach:
Here’s the code:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to a NumPy Array in Python?
![[Image: image-86.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-86.png)
You can convert a CSV file to a NumPy array simply by calling with two arguments: the and the string. For example, the expression returns a NumPy array from the with delimiter symbols .
Here’s an example:
Output:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
How to Convert a CSV to a List of Dictionaries?
![[Image: image-87.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-87.png)
Convert a CSV file to a list of Python dictionaries in three steps:
Here’s the code to convert that CSV file to a list of dictionaries, one dictionary per row by using the function:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.
Summary
You can find a more detailed article on each topic in the following table:
Goal Conversion |
Full Article
Python CSV to JSON |
https://blog.finxter.com/convert-csv-to-json-in-python/
Python CSV to Excel () |
https://blog.finxter.com/convert-csv-to-...in-python/
Python CSV to Dictionary |
https://blog.finxter.com/convert-csv-to-...in-python/
Python CSV to Parquet |
https://blog.finxter.com/python-convert-csv-to-parquet/
Python CSV to List |
https://blog.finxter.com/python-convert-csv-to-list/
Python CSV to List of Lists |
https://blog.finxter.com/python-convert-...-of-lists/
Python CSV to List of Tuples |
https://blog.finxter.com/convert-csv-to-...in-python/
Python CSV to Text File () |
https://blog.finxter.com/python-convert-...sv-to-txt/
Python CSV to DataFrame (Pandas) |
https://blog.finxter.com/read-a-csv-file...dataframe/
Python CSV to XML File () |
https://blog.finxter.com/csv-to-xml-how-...in-python/
Python CSV to NumPy Array () |
https://blog.finxter.com/how-to-convert-...in-python/
Python CSV to List of Dictionaries |
https://blog.finxter.com/python-convert-...tionaries/
Feel free to check out the Finxter email academy to keep improving your coding skills. We have cheat sheets!
Programmer Humor
[i]It’s hard to train deep learning algorithms when most of the positive feedback they get is sarcastic. — from xkcd[/i]
4/5 – (1 vote)
Abstract: In this article, we’ll quickly overview the best method, respectively, to convert a CSV file to JSON, Excel, dictionary, Parquet, list, list of lists, list of tuples, text file, DataFrame, XML, NumPy array, and list of dictionaries.In this article, you’ve learned the best ways to perform the following conversions (click to read more):
- How to Convert CSV to JSON in Python?
- How to Convert CSV to Excel (XLSX) in Python?
- How to Convert a CSV to a Dictionary in Python?
- How to Convert a CSV to a Parquet Format in Python?
- How to Convert a CSV to a List in Python?
- How to Convert a CSV to a List of Lists in Python?
- How to Convert a CSV to a List of Tuples in Python?
- How to Convert a CSV to a Text File in Python?
- How to Convert a CSV to a Pandas DataFrame in Python?
- How to Convert a CSV to an XML in Python?
- How to Convert a CSV to a NumPy Array in Python?
- How to Convert a CSV to a List of Dictionaries?
How to Convert CSV to JSON in Python?
You can convert a CSV file to a JSON file by using the following five steps:
- Import the andCode:
csvlibrariesCode:json
- Open the CSV as a file object in reading mode using the function in a context manager (=Code:
open(path_to_csv, 'r')environment).Code:with
- Load the CSV content into Python using the and pass the file object just created.Code:
csv.DictReader(fobj)
- Iterate over each and update a newly-created dictionaryCode:
rowusing one of the column values as key:Code:my_jsonCode:my_json[key] = row
- Store the dictionary data in a JSON file using theCode:
my_jsonfunction.Code:json.dumps(my_json)
Code:
import csv
import json csv_file = 'my_file.csv'
json_file = 'my_file.json' my_json = {}
with open(csv_file, 'r') as fobj: reader = csv.DictReader(fobj) for row in reader: # Use one of the CSV column names as a key key = row['Name'] my_json[key] = row with open(json_file,'w') as fobj: fobj.write(json.dumps(my_json, indent=2))Input CSV File:
Code:
Name,Job,Age,Income
Alice,Programmer,23,110000
Bob,Executive,34,90000
Carl,Sales,45,50000Output JSON File:
Code:
{ "Alice": { "Name": "Alice", "Job": "Programmer", "Age": "23", "Income": "110000" }, "Bob": { "Name": "Bob", "Job": "Executive", "Age": "34", "Income": "90000" }, "Carl": { "Name": "Carl", "Job": "Sales", "Age": "45", "Income": "50000" }
}There are many more details to it, so if this didn’t answer your question yet, go here:
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert CSV to Excel (XLSX) in Python?
![[Image: image-81.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-81.png)
The most pythonic way to convert a
Code:
.csvCode:
.xlsx- Install the library withCode:
pandasCode:pip install pandas
- Install the library that is used internally by pandas withCode:
openpyxlCode:pip install openpyxl
- Import the libray withCode:
pandasCode:import pandas as pd
- Read the CSV file into a DataFrame by using the expressionCode:
dfCode:df = pd.read_csv('my_file.csv')
- Store the DataFrame in an Excel file by calling Code:
df.to_excel('my_file.xlsx', index=None, header=True)
Code:
import pandas as pd df = pd.read_csv('my_file.csv')
df.to_excel('my_file.xlsx', index=None, header=True)Note that there are many ways to customize the
Code:
to_excel()- you don’t need a header line,
- you want to fix the first line in the Excel file,
- you want to format the cells as numbers instead of strings, or
- you have an index column in the original CSV and want to consider it in the Excel file too.
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to a Dictionary in Python?
![[Image: image-82.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-82.png)
The best way to convert a CSV file to a Python dictionary is to create a CSV file object
Code:
fCode:
open("my_file.csv")Code:
csv.DictReader(f)Code:
import csv csv_filename = 'my_file.csv' with open(csv_filename) as f: reader = csv.DictReader(f) for row in reader: print(row)
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to a Parquet Format in Python?
Here’s a step-by-step approach to reading a CSV and converting its contents to a Parquet file using the Pandas library:
- Step 1: Run if the module is not already installed in your environment.Code:
pip install pandas
- Step 2: Run to installCode:
pip install pyarrowmoduleCode:pyarrow
- Step 3: Run to install theCode:
pip install fastparquetmoduleCode:fastparquet
- Step 4: import pandas using Code:
import pandas as pd
- Step 5: Read the CSV file into a DataFrame using .Code:
df = pd.read_csv('my_file.csv')
- Step 6: Write the Parquet file using Code:
df.to_parquet('my_file.parquet')
The code snippet to convert a CSV file to a Parquet file is quite simple (steps 4-6):
Code:
import pandas as pd
df = pd.read_csv('my_file.csv')
df.to_parquet('my_file.parquet')
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to a List in Python?
![[Image: image-166-1024x576.png]](https://blog.finxter.com/wp-content/uploads/2022/06/image-166-1024x576.png)
Here’s the code to convert that CSV file to a list of dictionaries, one dictionary per row by using the
Code:
csv.DictReader(file)Code:
import csv csv_filename = 'my_file.csv' with open(csv_filename) as f: reader = csv.DictReader(f) lst = list(*reader)
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to a List of Lists in Python?
![[Image: image-83.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-83.png)
To convert a CSV file
Code:
'my_file.csv'Code:
csv.reader(file_obj)Code:
list()Code:
import csv csv_filename = 'my_file.csv' with open(csv_filename) as f: reader = csv.reader(f) lst = list(reader)Output:
Code:
print(lst)
# [['9', '8', '7'], ['6', '5', '4'], ['3', '2', '1']]
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to a List of Tuples in Python?
![[Image: image-84.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-84.png)
To convert a CSV file
Code:
'my_file.csv'Code:
csv.reader(file_obj)Code:
list(tuple(line) for line in reader)Here’s a simple example that converts our CSV file to a list of tuples using this approach:
Code:
import csv csv_filename = 'my_file.csv' with open(csv_filename) as f: reader = csv.reader(f) lst = list(tuple(line) for line in reader)Output:
Code:
print(lst)
# [('9', '8', '7'), ('6', '5', '4'), ('3', '2', '1')]
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to a Text File in Python?
If you want to keep the content (including the delimiter
Code:
','Code:
.csvCode:
.txtCode:
open()Code:
read()Code:
write()In other words, perform the three steps to write a CSV to a TXT file unmodified:
- Open the CSV file in reading mode and the TXT file in writing mode.
- Read the CSV file and store it in a variable.
- Write the content into the TXT file.
Here’s the code snippet that solves our basic challenge:
Code:
# 1. Open the CSV file in reading mode and the TXT file in writing mode
with open('my_file.csv', 'r') as f_in, open('my_file.txt', 'w') as f_out: # 2. Read the CSV file and store in variable content = f_in.read() # 3. Write the content into the TXT file f_out.write(content)
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to a Pandas DataFrame in Python?
To import a given CSV file into a newly-created Pandas DataFrame, use the
Code:
pd.read_csv('my_file.csv')Code:
'my_file.csv'Here’s a quick and generic code snippet showcasing this approach:
Code:
import pandas as pd
df = pd.read_csv('my_file.csv')
print(df)Output:
Code:
Name Job Age Income
0 Alice Programmer 23 110000
1 Bob Executive 34 90000
2 Carl Sales 45 50000
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to an XML in Python?
![[Image: image-85.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-85.png)
You can convert a CSV to an XML using the following approach:
- Read the whole CSV file into your Python script.
- Store the first row as header data that is needed to name your custom XML tags (e.g., ,Code:
<Name>,Code:<Job>, andCode:<Age>in our example).Code:<Income>
- Create a function that converts each row separately to an XML representation of that row using basic string formatting.Code:
convert_row()
- Iterate over the data row-wise using and convert each CSV row to XML using your functionCode:
csv.reader().Code:convert_row()
Here’s the code:
Code:
# Convert CSV file to XML string
import csv filename = 'my_file.csv' def convert_row(headers, row): s = f'<row id="{row[0]}">\n' for header, item in zip(headers, row): s += f' <{header}>' + f'{item}' + f'</{header}>\n' return s + '</row>' with open(filename, 'r') as f: r = csv.reader(f) headers = next(r) xml = '<data>\n' for row in r: xml += convert_row(headers, row) + '\n' xml += '</data>' print(xml)
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to a NumPy Array in Python?
![[Image: image-86.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-86.png)
You can convert a CSV file to a NumPy array simply by calling
Code:
np.loadtxt()Code:
filenameCode:
delimiterCode:
np.loadtxt('my_file.csv', delimiter=',')Code:
'my_file.csv'Code:
','Here’s an example:
Code:
import numpy as np array = np.loadtxt('my_file.csv', delimiter=',')
print(array)Output:
Code:
[[9. 8. 7.] [6. 5. 4.] [3. 2. 1.]]
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.How to Convert a CSV to a List of Dictionaries?
![[Image: image-87.png]](https://blog.finxter.com/wp-content/uploads/2022/07/image-87.png)
Convert a CSV file to a list of Python dictionaries in three steps:
- Create a CSV file object usingCode:
fand pass it in theCode:open("my_file.csv")method.Code:csv.DictReader(f)
- The return value is an iterable of dictionaries, one per row in the CSV file. Each dictionary maps the column header from the first row to the specific row value.
- As the last step, convert the iterable of dictionaries to a list using the Python built-in function.Code:
list()
Here’s the code to convert that CSV file to a list of dictionaries, one dictionary per row by using the
Code:
csv.DictReader(file)Code:
import csv csv_filename = 'my_file.csv' with open(csv_filename) as f: reader = csv.DictReader(f) lst = list(*reader)
Learn More: Feel free to learn more about this conversion goal in our full guide on the Finxter blog with multiple CSV conversion methods and step-by-step explanations.Summary
You can find a more detailed article on each topic in the following table:
Goal Conversion |
Full Article
Python CSV to JSON |
https://blog.finxter.com/convert-csv-to-json-in-python/
Python CSV to Excel (
Code:
.xlsxhttps://blog.finxter.com/convert-csv-to-...in-python/
Python CSV to Dictionary |
https://blog.finxter.com/convert-csv-to-...in-python/
Python CSV to Parquet |
https://blog.finxter.com/python-convert-csv-to-parquet/
Python CSV to List |
https://blog.finxter.com/python-convert-csv-to-list/
Python CSV to List of Lists |
https://blog.finxter.com/python-convert-...-of-lists/
Python CSV to List of Tuples |
https://blog.finxter.com/convert-csv-to-...in-python/
Python CSV to Text File (
Code:
.txthttps://blog.finxter.com/python-convert-...sv-to-txt/
Python CSV to DataFrame (Pandas) |
https://blog.finxter.com/read-a-csv-file...dataframe/
Python CSV to XML File (
Code:
.xmlhttps://blog.finxter.com/csv-to-xml-how-...in-python/
Python CSV to NumPy Array (
Code:
ndarrayhttps://blog.finxter.com/how-to-convert-...in-python/
Python CSV to List of Dictionaries |
https://blog.finxter.com/python-convert-...tionaries/
Feel free to check out the Finxter email academy to keep improving your coding skills. We have cheat sheets!
Programmer Humor
[i]It’s hard to train deep learning algorithms when most of the positive feedback they get is sarcastic. — from xkcd[/i]

