Pandas
Powerful data analysis and manipulation library for Python
Our View
Pandas provides intuitive data structures (DataFrames) for working with tabular data, making it easy to clean, analyze, and visualize datasets. It's the go-to tool for exploratory data analysis and handling experimental results in research.
Provisional positions are editorial proposals awaiting group review.
Teaching — Recorded in topic offerings; consult the dated event links for availability.
5 topics with recorded teaching · 14 past offerings · 2 upcoming offerings
Related themes: Neural Data AnalysisScientific Computing
Related topics: AI-Assisted Software DevelopmentArrays and Numerical ComputingAutomating Research WorkflowsDataframes and StatisticsLocal Field Potential (LFP) AnalysisNeural Spike Analysis
Common use cases
- Organize experimental data in tables with labeled rows and columns
- Clean and preprocess datasets (handle missing values, filter, transform)
- Aggregate and compute statistics across experimental conditions
- Read and write data in various formats (CSV, Excel, HDF5)
Getting started
Pandas is a fast, powerful, flexible, and easy-to-use data analysis and manipulation library built on top of NumPy. It provides DataFrames - tabular data structures perfect for handling experimental data.
Why Pandas?
- Intuitive: Work with labeled data using column names and row indices
- Flexible: Handle time series, categorical data, and mixed types
- Powerful: Built-in functions for grouping, pivoting, and merging
- I/O: Read/write many formats (CSV, Excel, SQL, HDF5, JSON)
- Integration: Works seamlessly with NumPy, Matplotlib, and other libraries
Key Features
DataFrames - Labeled Tables
import pandas as pd
# Create a DataFrame
data = pd.DataFrame({
'subject': ['S01', 'S01', 'S02', 'S02'],
'condition': ['A', 'B', 'A', 'B'],
'reaction_time': [0.45, 0.52, 0.48, 0.55]
})
# Access columns
data['reaction_time']
# Filter rows
fast_trials = data[data['reaction_time'] < 0.5]
Data Manipulation
- Filtering: Select rows based on conditions
- Grouping: Aggregate by experimental conditions
- Merging: Combine multiple datasets
- Pivoting: Reshape data for analysis
- Missing Data: Handle NaN values intelligently
Time Series
Built-in support for temporal data:
# Create time index
dates = pd.date_range('2024-01-01', periods=100, freq='D')
data = pd.DataFrame({'value': range(100)}, index=dates)
# Resample to weekly averages
weekly = data.resample('W').mean()
Common Use Cases in Research
- Behavioral Data: Organize trial-by-trial responses
- Spike Counts: Tabulate firing rates across neurons and conditions
- Experimental Metadata: Track subject information, session details
- Statistical Analysis: Prepare data for statistical tests
- Exploratory Analysis: Quickly compute summary statistics
Getting Started
Install Pandas:
conda install pandas
# or
pip install pandas
Basic example:
import pandas as pd
# Load data
data = pd.read_csv('experiment_data.csv')
# Quick overview
print(data.head())
print(data.describe())
# Group by condition and compute means
results = data.groupby('condition')['reaction_time'].mean()
Tips
- Use
.head()and.describe()to quickly inspect data - Learn boolean indexing for powerful filtering
- Use
.groupby()for aggregating across experimental conditions - Set meaningful index names for easier data access
- Save intermediate results with
.to_csv()or.to_hdf() - Use method chaining for readable data pipelines