Skip to main content

Dynamic data analysis over the web. The logic to your data dashboards.

Project description

bamboo is an application that systematizes realtime data analysis. bamboo provides an interface for merging, aggregating and adding algebraic calculations to dynamic datasets.

Clients can interact with bamboo through a REST web interface, a Python library, or a JavaScript library. For more languages request a libary in the language you prefer.

bamboo supports a simple querying language to build calculations (e.g. student teacher ratio) and aggregations (e.g. average number of students per district) from datasets. These are updated as new data is received.

bamboo uses pandas for data analysis, pyparsing to read formulas, and mongodb to serialize data.

bamboo is open source software released under the 3-clause BSD license, which is also known as the “Modified BSD License”.


  • python (tested on version 2.7)
  • mongodb

for numpy, pandas, and scipy:

On Arch Linux: # pacman -S blas lapack gcc-fortran.

On Debian based: # apt-get install gfortran libatlas-base-dev.

On Mac OS X: $ brew install gfortran.

Using as a Python Libary


$ pip install bamboo-server

Python pip package for bamboo.

For creating plots: $ pip install matplotlib.


import bamboo as bm

bf = bm.BambooFrame([{'date': '2012-12-21'}])
bff = bf.recognize_dates()

>>> '[{"date": {"$date": 1356048000000}}]'

# Turn asyncronous processing off

url = ''
dataset = bm.Dataset.create()
dataset.import_from_url(url, na_values=['n/a'])

>>> {u'_gps_altitude': {u'cardinality': 14, u'label': u'_gps_altitude', ...

# Resample monthly, 'M', aggregating by mean
date_column = 'submit_date'
monthly = ds.resample(date_column, 'M', 'mean').set_index(date_column)
monthly_amounts = monthly.amount.dropna()

# Plot the amount spent per month


$ ./scripts/

Example Usage

On the remote server

running the example basic commands

$ ./scripts/

using bamboo.JS

var dataset = new bamboo.Dataset({url: ''});

using pybamboo

from pybamboo import PyBamboo
pybamboo = PyBamboo()
response = pybamboo.store_csv_file('')
dataset_id = response['id']

posting a dataset

$ curl -X POST -d "url="


Viewing Documentation

The latest docs are available at


Join the bamboo-dev list.

bamboo is an open source project. The project features, in chronological order, the combined efforts of

  • Peter Lubell-Doughtie
  • Mark Johnston
  • Prabhas Pokharel
  • Renaud Gaudin
  • Myf Ma
  • Ukang’a Dickson
  • Larry Weya

and other developers.

Projects using bamboo

  • - The web service API
  • formhub - Mobile Data Collection made easy
  • AFSIS - Africa Soil Information Service

Is your project using bamboo? Let us know!

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bamboo-server-0.6.3.tar.gz (96.1 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page