Pandas ‘read_spss’ Method: Load as SPSS File as a DataFrame

Featured Read Spss

Pandas is an excellent tool for handling various different datatypes. SPSS is another data type that can be handled using pandas, SPSS is majorly used when handling statistical data, and as Pandas is also a tool used for statistics, both these tools go together very well, let us understand how things work in detail.

What is SPSS?

SPSS is an acronym for Statistical Package for Social Sciences, which is one type of data storage format. SPSS has several applications that range from health and education to marketing and data mining.

SPSS formatted files are often also addressed as SAV and have a ‘.sav’ extension. There are a few other types of SPSS formatted files, but SAV is the primary data file.

It follows a row and column structure to store and manage data.

SPSS file formatting is one of the front-runners in the field of statistical analysis, and also being one of the favorite choices for data analysts and statisticians.

To follow along with this article, you need to have some basic knowledge about pandas.

Check out this link to get a better understanding of the pandas library. Here

Overview to ‘read_spss’

The ‘read_spss’ is a simple and robust method that is provided by pandas and used to read and handle SPSS files.

The ‘read_spss’ method takes in the path to a ‘.sav’ file, reads it, imports it to our environment, and converts it into a dataframe, which is a primary data structure of pandas, and it is a 2-dimensional structure that is made up of rows and columns.

General Syntax

The basic syntax of the ‘read_spss’ method is as follows:


The file path needs to be passed in string format.

What is Pyreadstat?

It is a Python package used to handle SPSS and various other formatted files. It is to perform actions like read and write on the desired file type.

The ‘pyreadstat’ package is the major dependency that is required by the ‘read_spss’ function. In order to use the ‘read_spss’ method, we must have the ‘pyreadstat’ package installed via ‘pip’.

If you have already installed the package, you can skip this part, otherwise, we will install the package together using the Python package manage ‘pip’.

To install ‘pyreadstat’, type this statement in your terminal window.

pip install Pyreadstat

Since we have installed the major dependency of our concerned function, we are good to go and start using the ‘read_spss’ method in our environment.

Getting Started with Using ‘read_spss’.

If you have followed along with this article by far, then you have all the required dependencies installed in your system. Considering a basic example, you won’t need much, all you require is the Pandas library and the Pyreadstat package.

We have seen how to install Pyreadstat in the previous section, and if needed, you can see how to install Pandas library in the link provided in the above section.

To start with, we will need an environment to run all our codes. For this tutorial, I will be using an environment provided by Google called ‘Google Colaboratory’, which is a free-to-use platform Google.

Importing Dependencies

After starting our environment, the first thing that we will be doing is importing the two above-discussed dependencies into our environment.

Use the below-provided code to import the dependencies.

import pandas as pd
import pyreadstat

We shall be importing Pandas as ‘pd’ as it is a standard practice being followed all over.

If there is no error and you had earlier installed the packages properly in your system, after running the above code, the mentioned packages will be installed in your local environment.

Locating the SPSS format file

To access the SPSS file, it is necessary that you already have the required SAV file in your system. It is important to know the path of that file as we will ne need it because the ‘read_spss’ method takes the file path as a parameter.

The ‘read_spss’ Method with Example And Loading the SPSS File as a DataFrame

Since we have completed all the prerequisites, we can jump directly into our code, in which we will be using the ‘read_spss’ function to load a SAV file.

The code we will be using is quite simple, it’s just two lines of code that will do the long process for us.

data = pyreadstat.read_sav('data.sav')

For the sake of explanation, I have already saved a SAV file in my system, which I will be using for further demonstration.

On successful execution, the above code should load the ‘data.sav’ file, which is in SPSS format, into the ‘data’ dataframe.

The beauty of the Pandas library is that it will automatically convert the SAV into a dataframe which is a row and column format.

Since it is a dataframe now, all the possible functions and tasks that can be carried out on a dataframe can be done on this SAV.

How does ‘read_spss’ handle missing data?

For people working with large-scale data, ‘missing data’ is not an unfamiliar term. When working with data, it is a very rare case where you might find data in a very perfect and consistent state.

In most cases, data is in an incomplete state, the ‘read_spss’ follows a standard Pandas way of handling missing data. As we know, we have already converted the SAV into a dataframe, and whenever Pandas encounters a missing value, it will, by default, term as Nan(Not a Number).

To take a deep dive and understand what is a Nan, please check out this link.

Now if you inspect your dataframe, you will see a Nan in your dataframe wherever there is a missing value.

Missing Val Dataframe
DataFrame with missing values

Nan is a default way in which Pandas identifies missing values. Now with pandas, you have various methods that can be used to handle this situation. There are methods such as ‘isna()’, ‘fillna()’, ‘dropna()’ and so on.

Handling missing data is always tricky and needs to be done very carefully because it can hamper and affect the nature of our data and further affect our analytical study.


The ‘read_spss’ method is a very handy tool that enables us to integrate SPSS formatted files into our pandas environment. It not only converts it into a dataframe but also enables us to manipulate it just the way we handle any other dataframe.

It’s common knowledge that the SPSS format has a multitude of applications. It can be used to handle data as a dataframe, which is not only visually appealing but also user-friendly.

It also enables us to handle missing data in the same way as we handle missing data in other pandas dataframe, with all these use cases and benefits, ‘read_spss’ will be a go-to tool for anyone trying to work with SAV data and Pandas.


Official Pandas Documentation