How To Export DataFrame to CSV in Python

When working with a dataset and executing the necessary preprocessing, preprocessed data must be saved in a data format like CSV, Excel, or another. In data-based applications, CSV (Comma-separated-values) is frequently used for data communication. We typically store the data of web applications in a dataframe, array, list, tuple, dictionary, etc. Customers could require the data to be exported as a CSV file. Data is stored in CSV files as a sequence of data. We can use Python Pandas to write data to a CSV file like in other programming languages.

What Is a Pandas DataFrame?

In Python, the pandas module includes a function “pandas.DataFrame()” to create a DataFrame. Similar to a spreadsheet, a DataFrame is a data structure that organizes data into a 2D table of columns and rows. Due to their adaptability and simplicity in storing and manipulating data, DataFrames are among the most popular and effective data structures in modern data analytics.


pandas.DataFrame( data, index, columns, dtype, copy)

How To Export a DataFrame to a CSV in Python?

The to_csv() method in Python pandas can convert a DataFrame to a CSV file. We can write the output to a file if a file parameter/argument is provided. If not, a CSV string will be returned. Although the to_csv() function has many attributes, we have only mentioned the ones that are most frequently used here.


dataframe.to_csv(path, sep, na_rep, float_format, columns, header, index, mode, compression)


path: It refers to file or str handle. In general, it specifies the path/location of a file or object. None by default. When None is supplied, a string value is returned.

sep: It is a string value that has a length of 1. The comma is its default value (,).

na_rep: A string data value that symbolizes or represents missing or null values. The default value is the empty string.

float_format: it contains a string value for formatting or structuring a string of floating-point numbers.

columns: It is a parameter that is optional and refers to a series that specifies the columns that must be present in the output CSV.

header: A collection of strings or a Boolean value. If set to False. The names of columns will not be written in the output. True is its default value.

Index: If set to True, the CSV data includes the index. Otherwise, the output CSV does not have the index value.

Mode: In writing mode, it refers to a string value. W is its default value.

Compression: A string value that compresses the mode using one of the following options: infer, gzip, xz, bz2, zip, or none. If “infer” and “path” are path-like, it identifies compression from the file extensions “.gz”, “.bz2”, “zip”, or “xz”. Otherwise, no compression takes place.

We’ll now create a Pandas DataFrame that we can use to export the data to CSV in the examples of this tutorial.

Creating a Sample Dataframe

To create our DataFrame, we will first import the required module, i.e., pandas. After importing the module, the DataFrame() function will create our DataFrame.

We have created our DataFrame by passing a Python dict inside the pd.DataFrame() function. Our DataFrame consists of three columns (Name, Age, and Marks).

Now, let’s learn how to export a DataFrame to a CSV file.

Exporting Dataframe to CSV Without Index

When you use the df.to_csv() method to export a DataFrame from Pandas to a CSV file, an index for the DataFrame is automatically included. Set index = False to True if you don’t want it or require including an index.

Output file:

When the index is meaningless, doing so can be helpful. But, if the index stores important or meaningful data, like time series data, you shouldn’t remove it. True is the default value for the index parameter. As a result, you may simply leave the parameter alone if you want the index to be included

Exporting the DataFrame to CSV With Specific Columns

Before exporting, you might be aware of your data’s size when you export it. Limiting the columns you export is one method for reducing the generated CSV file size. Using the columns parameter, we can specify a list containing the names of columns that we want to include in our export file. The export will exclude any columns that are not present in the list.

Output file:

We specified the column parameter with a list containing column names “Name” and “Marks”, so only these two columns have been exported to our CSV file.

Exporting the DataFrame to CSV and Changing the Separator

We can delimit the CSV file by characters other than a comma, although commas are the character that gives them their name (comma-separated value files). The tab value, for instance, is a typical separator and is represented \t. In Pandas, we can change our separator by using the sep argument.

Output file:

Exporting the DataFrame to CSV and Dealing With Missing/None Values

The information regarding missing data is not included by default in CSV files. An empty cell will be generated when missing data is exported to CSV. The na_rep argument allows you to display an alternate value, like null or N/A, in place of all missing values. This takes any kind of string as input, but the default is an empty string. For this, we will use another DataFrame containing some missing data values.

Let’s set the string “NULL” as the value of the na_rep parameter.

Output file:

Exporting the DataFrame to CSV Without Header

In data science, a dataset may require exporting data from a DataFrame without a header at some point. This is often the case when exporting huge datasets that need to be joined together later. A DataFrame can be easily converted to CSV without the header. To achieve this, the header argument can be used. It is True by default, indicating that the header will be included.

Output file:

Compressing Data When Exporting DataFrame to CSV

It can be helpful to compress large datasets when working with ones intended for long-term storage, especially when saving them in CSV format. The file size decreases as a dataset is compressed. However, DataFrame exporting to the CSV process will take a longer time. Similarly, it will take longer for Pandas to transform the CSV into a DataFrame. Because compression requires more time than simple exporting, it takes longer. Let’s see how we can compress our data using the compress argument:


The output CSV file is now compressed.

Exporting DataFrame to CSV File With Different Encoding

You will often need to encrypt data when working with string data. If you’re dealing with encoded or numerical data, this is less often, but strings often need additional instruction on how they should be interpreted.

The utf-8 encoding format, one of the most widely used encoding formats, is the encoding type by default. Let’s use the utf-16 encoding to export DataFrame to CSV.



In this tutorial, we first saw the introduction of CSV files and pandas DataFrame. We discussed how a DataFrame could be exported to a CSV in Python. We tried to explain how to use the Pandas.to_csv() method effectively and how we can use different arguments of the to_csv() function to modify how the data is exported. After covering this post, you should all be able to create a CSV file from a Pandas DataFrame.

About the author

Aqsa Yasin

I am a self-motivated information technology professional with a passion for writing. I am a technical writer and love to write for all Linux flavors and Windows.