Last modified: Nov 26, 2024 By Alexander Williams
Export List to CSV in Python
Exporting a list to a CSV file is a common task in Python, whether you’re working with simple or complex data. This article provides examples to help you export lists to CSV files efficiently.
Using the csv Module
The built-in csv
module is a straightforward way to write data to a CSV file.
Exporting a Simple List
import csv
# Define a simple list
data = ["Alice", "Bob", "Charlie"]
# Write to CSV
with open("output.csv", "w", newline="") as file:
writer = csv.writer(file)
for item in data:
writer.writerow([item])
print("CSV file created: output.csv")
This creates a CSV file where each element of the list is written on a new line.
Exporting a List of Lists
For a list of lists, each sublist becomes a row in the CSV file.
# Define a list of lists
data = [
["Name", "Age", "City"],
["Alice", 30, "NY"],
["Bob", 25, "LA"],
["Charlie", 35, "SF"]
]
# Write to CSV
with open("output.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerows(data)
print("CSV file created: output.csv")
Using writerows()
, you can write multiple rows at once.
Using the pandas Library
The pandas
library offers a more flexible approach for exporting data, especially for structured data.
Exporting a Simple List
import pandas as pd
# Define a simple list
data = ["Alice", "Bob", "Charlie"]
# Create a DataFrame
df = pd.DataFrame(data, columns=["Name"])
# Export to CSV
df.to_csv("output.csv", index=False)
print("CSV file created: output.csv")
The to_csv()
method writes the DataFrame to a CSV file with customizable options.
Exporting a List of Dictionaries
When working with structured data, a list of dictionaries can be exported to CSV easily.
# Define a list of dictionaries
data = [
{"Name": "Alice", "Age": 30, "City": "NY"},
{"Name": "Bob", "Age": 25, "City": "LA"},
{"Name": "Charlie", "Age": 35, "City": "SF"}
]
# Create a DataFrame
df = pd.DataFrame(data)
# Export to CSV
df.to_csv("output.csv", index=False)
print("CSV file created: output.csv")
Each dictionary represents a row, and keys become column headers in the CSV file.
Handling Complex Data
If your list contains complex objects, you can preprocess it into a suitable format, such as a list of dictionaries or lists.
# Define a class
class Person:
def __init__(self, name, age, city):
self.name = name
self.age = age
self.city = city
# Create a list of objects
people = [
Person("Alice", 30, "NY"),
Person("Bob", 25, "LA"),
Person("Charlie", 35, "SF")
]
# Convert objects to dictionaries
data = [{"Name": p.name, "Age": p.age, "City": p.city} for p in people]
# Create a DataFrame
df = pd.DataFrame(data)
# Export to CSV
df.to_csv("output.csv", index=False)
print("CSV file created: output.csv")
Preprocessing complex data ensures compatibility with CSV export methods.
Customizing CSV Output
You can customize the output with options like delimiter, quoting, and line terminator.
# Custom delimiter and quoting
with open("output.csv", "w", newline="") as file:
writer = csv.writer(file, delimiter=";", quotechar='"', quoting=csv.QUOTE_MINIMAL)
writer.writerows(data)
print("CSV file created with custom settings: output.csv")
These options help adapt the output format to specific requirements.
Related Topics
Learn more about CSV operations with articles like reading CSV files or handling CSVs with pandas.
Conclusion
Exporting lists to CSV files in Python is straightforward with tools like csv
and pandas
. Whether working with simple or complex data, these methods provide robust solutions to create well-structured CSV files.
Try these techniques to streamline your data export tasks in Python!