Python:
Working with CSV
How to:
Python provides the built-in csv module to handle CSV files, making it straightforward to read from and write to them. For more robust and complex data manipulation, the third-party library pandas is highly popular.
Using the csv module
Reading a CSV file
import csv
with open('sample.csv', mode='r') as file:
csv_reader = csv.reader(file)
for row in csv_reader:
print(row)Assuming sample.csv contains:
name,age,city
John,22,New York
Jane,28,Los AngelesOutput:
['name', 'age', 'city']
['John', '22', 'New York']
['Jane', '28', 'Los Angeles']Writing to a CSV file
import csv
rows = [['name', 'age', 'city'], ['Jack', '33', 'Chicago'], ['Emily', '41', 'Denver']]
with open('output.csv', mode='w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)Creates or overwrites output.csv with:
name,age,city
Jack,33,Chicago
Emily,41,DenverUsing pandas for CSV
pandas is a powerful library for data manipulation that simplifies working with CSV files among other data formats.
Install pandas
pip install pandasReading a CSV file with pandas
import pandas as pd
df = pd.read_csv('sample.csv')
print(df)Output:
name age city
0 John 22 New York
1 Jane 28 Los AngelesWriting to a CSV file with pandas
import pandas as pd
df = pd.DataFrame({'name': ['Jack', 'Emily'], 'age': [33, 41], 'city': ['Chicago', 'Denver']})
df.to_csv('output_pandas.csv', index=False)Creates or overwrites output_pandas.csv with:
name,age,city
Jack,33,Chicago
Emily,41,Denver