aws

aws-sdk-pandas

AWS SDK for pandas (awswrangler) is the official AWS Python library that connects pandas DataFrames with Athena, Redshift, S3, Glue, DynamoDB, Timestream, and more, enabling data lake I/O and ETL in a few lines of code.

3.18.0
Published at
1d ago
4,124
Stars
6,726
Download
Synced at
9h ago

Latest release

3.18.0Oct 27, 2026, 09:55 PM
Downloads slow? Switch the source anytime above

README

Project Overview

AWS SDK for pandas (package name awswrangler) is an open-source Python library from AWS Professional Services, positioned as pandas on AWS: it connects DataFrames directly to AWS data services. It provides high-level APIs for S3 (Parquet, CSV, JSON, Excel), Athena, Redshift, Glue Catalog, Timestream, DynamoDB, OpenSearch, Neptune, and more — reading databases, landing data in a lake, and running SQL queries take only a line or two. With Modin and Ray, the same code can scale out to a cluster.

Item Value
Language Python
Platform Any Python environment (incl. Lambda, Glue, EMR, SageMaker)
Integrations S3, Athena, Redshift, Glue, Timestream, DynamoDB, OpenSearch, Neptune and more
License Apache-2.0

The official high-speed channel between pandas and AWS data services.

Key Features

  • S3 data lake I/O: wr.s3.to_parquet / read_parquet work with datasets on S3 and register Glue tables automatically
  • Athena queries: wr.athena.read_sql_query runs SQL and returns results straight into a DataFrame
  • Redshift integration: connections from Glue Catalog, with query, COPY/UNLOAD, and upsert support
  • Multiple databases: bulk read/write for MySQL, PostgreSQL, SQL Server, and Oracle
  • Timestream time series: write and query between DataFrames and Amazon Timestream
  • DynamoDB and OpenSearch: wrappers for key-value data and search clusters
  • Scale-out execution: distribute processing across clusters with Modin and Ray
  • Fully typed: type annotations throughout, checked with mypy, IDE-friendly

Target Audience

  • Data engineers on AWS
  • Data scientists analyzing with pandas
  • Developers building ETL pipelines
  • Teams running data jobs on Lambda / Glue / EMR

Quick Start

  1. Install: pip install awswrangler (optional modules need extras like pip install 'awswrangler[redshift]')
  2. Configure AWS credentials and start using:
import awswrangler as wr
import pandas as pd

df = pd.DataFrame({'id': [1, 2], 'value': ['foo', 'boo']})

# Write to the data lake and register a Glue table
wr.s3.to_parquet(df=df, path='s3://bucket/dataset/', dataset=True,
                 database='my_db', table='my_table')

# Query back into a DataFrame via Athena
df = wr.athena.read_sql_query('SELECT * FROM my_table', database='my_db')
  1. See the official docs and the tutorials directory of Notebooks for more

Core Advantages

  • Minimal code: operations that take dozens of boto3 lines usually take one or two
  • Officially maintained: service coverage and compatibility handled by the AWS team
  • Local to cloud consistency: one API moves seamlessly from notebooks to production pipelines

System Requirements

Item Requirement
Language Python
OS Linux, macOS, Windows
Dependencies AWS credentials with permissions for the target services

Notes

  • Optional modules since 3.0: install extras explicitly, e.g. awswrangler[redshift] or awswrangler[mysql]; the default install includes core features only
  • Incurs AWS costs: Athena scans and S3 requests are billed by usage — watch data scan volume before querying
  • Lambda deployment: an official Lambda Layer is provided, so no manual dependency packaging is needed

Release history

Sort