Skip to content
Survival analysis in Python
Python Makefile
Latest commit 0539a21 @CamDavidsonPilon Update


Latest Version Build Status

What is survival analysis and why should I learn it? Survival analysis was originally developed and applied heavily by the actuarial and medical community. Its purpose was to answer why do events occur now versus later under uncertainty (where events might refer to deaths, disease remission, etc.). This is great for researchers who are interested in measuring lifetimes: they can answer questions like what factors might influence deaths?

But outside of medicine and actuarial science, there are many other interesting and exciting applications of this lesser-known technique, for example:

  • SaaS providers are interested in measuring customer lifetimes, or time to first behaviours
  • sociologists are interested in measuring political parties' lifetimes, or relationships, or marriages
  • analysing Godwin's law in Reddit comments
  • A/B tests to determine how long it takes different groups to perform an action.

lifelines is a pure Python implementation of the best parts of survival analysis. We'd love to hear if you are using lifelines, please leave an Issue and let us know your thoughts on the library.



The usual Python data stack: NumPy, SciPy, Pandas (a modern version please). Matplotlib is optional (as of 0.6.0+).


You can install lifelines using

   pip install lifelines

Or getting the bleeding edge version with:

   pip install --upgrade --no-deps git+

from the command line.

Installation Issues?

See the common problems/solutions for installing lifelines.

Running the tests

You can optionally run the test suite after install with


lifelines Documentation and an Intro to Survival Analysis

If you are new to survival analysis, wondering why it is useful, or are interested in lifelines examples and syntax, please check out the Documentation and Tutorials page

Citing lifelines

or with bibTex here:

  author = {C., Davidson-Pilon},
  title = {Lifelines},
  year = {2016},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{}},
  commit = {latest_commit}


Something went wrong with that request. Please try again.