📊📈 Serves up Pandas dataframes via the Django REST Framework for use in client-side (i.e. d3.js) visualizations and offline analysis (e.g. Excel)
Django REST Pandas 1.1.0 includes a new filename option (#31), confirmed support for Django 2, and a couple of minor fixes.
Added a get_pandas_filename()
view method, for cases where you have users downloading files through the API (#31). For example:
class TimeSeriesView(PandasView):
# If a filename is returned, rest_pandas will include the following header:
# 'Content-Disposition: attachment; filename="Data Export.xlsx"'
def get_pandas_filename(self, request, format):
if format in ('xls', 'xlsx'):
# Use custom filename and Content-Disposition header
return "Data Export" # Extension will be appended automatically
else:
# Default filename from URL (no Content-Disposition header)
return None
renderer_context
is missing (#34)PandasBoxplotSerializer
: handle non-numeric columns and duplicate rows (abeb57680f4138f8ac5f92591cc83c5c414bff85)rest_pandas
with an existing view (#32, #36)Django REST Pandas 1.0.0 brings a number of API improvements that make it easier to integrate with existing DRF projects.
REST_FRAMEWORK["DEFAULT_RENDERER_CLASSES"]
(#28)orient
parameter now defaults to a DRP-specific "records-index"
, which is like "records"
but calls reset_index()
before rendering."id"
is not a serializer field (#13)PandasScatterSerializer
(2636cc4)DateTimeField
serialization tips (#27)django-pandas
integration (#11)Django REST Pandas 0.5.0 introduces a simple PandasHTMLRenderer
for use in a browseable visualization API (#2). To enable it by default, you just need to add rest_pandas
to your INSTALLED_APPS
. You will need a template called rest_pandas.html
, or you can install django-mustache to use the provided mustache template (which is optimized for integration with a wq-powered application).
This release also includes updates for pandas 0.19 and drops support for Django REST Framework 2.4 (#23).
Django REST Pandas 0.4.1 brings a few minor bug fixes:
Django REST Pandas 0.4.0 brings a few new features as well as confirmed compatibility with Django 1.9.
Unstacked
, Scatter
, and Boxplot
serializers for common charting uses, generalized from wq.db.contrib.chart.This release is just to verify compatiblity with Django 1.8 and pandas 0.16.0. Older versions should still work, though note that Django 1.6 is no longer being tested against.
The only actual code change is https://github.com/wq/django-rest-pandas/commit/5faa4ec4d32466dac89ef117392faa87428a801f, which switches the JSON renderer from a default of orient="index"
to orient="records"
to get around a breaking test because it's a more reasonable default. You can restore the old behavior by subclassing PandasJSONRenderer
and overriding get_pandas_kwargs()
, but:
JSONRenderer
anyway.This release of DRP adds a small patch (1a81adcb8be3a65ae6c2c4b9d15a7661df5dd4d9) to ensure that no pagination class will be used for DRP views when running in Django REST Framework 3.
Django REST pandas 0.3.0 adds support for Django REST Framework 3 (#10) and a better separation between model serialization and DataFrame
creation - the latter now happening in a separate serializer (#8).
The new code is mostly backwards compatible (the tests haven't changed) but there are a couple of implementation changes that may affect you if you've customized or extended DRP.
PandasBaseSerializer
has been renamed to PandasSerializer
and replaces the former PandasSerializer
. When using DRP with DRF 3, the new PandasSerializer
is a ListSerializer and can only be used as such.PandasSimpleSerializer
has been renamed to SimpleSerializer
and no longer has any pandas-related functionality (since that's now handled in a separate step).PandasMixin
class encapsulates the functionality needed to add Pandas capabilities to a serialized result. This is accomplished via the new with_pandas_serializer(cls)
method that customizes any existing serializer_class
to enable Pandas capabilities as needed. The Pandas serializer can be overridden by specifying pandas_serializer_class
.pandas
library in code & docs (#9)