Python for Humanities

Lesson Maintainers: Iain Emsley

Python is a general purpose programming language that is useful for writing scripts to work effectively and reproducibly with data.

This is an introduction to Python designed for participants with no programming experience. These lessons can be taught in a day (~ 6 hours). They start with some basic information about Python syntax, the Jupyter notebook interface, and move through how to import CSV files, using the pandas package to work with data frames, how to calculate summary information from a data frame, and a brief introduction to plotting. The last lesson demonstrates how to work with databases directly from Python.

Getting Started

Data Carpentry’s teaching is hands-on, so participants are encouraged to use their own computers to insure the proper setup of tools for an efficient workflow.
These lessons assume no prior knowledge of the skills or tools.

To get started, follow the directions in the “Setup” tab to download data to your computer and follow any installation instructions.


This lesson requires a working copy of Python.
To most effectively use these materials, please make sure to install everything before working through this lesson.

For Instructors



Setup Download files required for the lesson
00:00 1. Short Introduction to Programming in Python What is Python?
Why should I learn Python?
00:00 2. Starting With Data How can I import data in Python?
What is Pandas?
Why should I use Pandas to work with data?
01:00 3. Indexing, Slicing and Subsetting DataFrames in Python How can I access specific data within my data set?
How can Python and Pandas help me to analyse my data?
02:00 4. Data Types and Formats What types of data can be contained in a DataFrame?
Why is the data type important?
02:45 5. Combining DataFrames with pandas Can I work with data from multiple sources?
How can I combine data from different data sets?
03:30 6. Data workflows and automation Can I automate operations in Python?
What are functions and why should I use them?
05:00 7. Plotting with bokeh Can I use Python to create plots?
How can I customize plots generated in Python?
05:45 8. Data Ingest & Visualization - Matplotlib & Pandas What other tools can I use to create plots apart from ggplot?
Why should I use Python to create plots?
06:30 9. Accessing SQLite Databases Using Python & Pandas
07:15 Finish
