Skip to main content

A lightweight single file DataFrame implementation that works on older Python distrubtions such as Jython.

Project description

A lightweight single file DataFrame implementation that works on older Python distrubtions such as Jython.

I use it with Java data tools such as Streamsets.

Feel free to fork, add tests and features and make a pull request.

Install

$ pip install mframe

or copy mframe.py to your project folder.

Usage

It’s goal is to be familar to pandas users without promising 100% compatability. My workflow usually involves writing the code in a Jupyter notebook using Python 3 and then testing it with Jython before deploying it to Streamsets.

>>> from mframe import DataFrame
>>> data = {'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']}
>>> df = DataFrame(data)
>>> df
{'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']}
>>> df.pd #  the pd alias returns a pandas dataframe, useful for printing in Jupyter when developing
     col_1 col_2
0      3     a
1      2     b
2      1     c
3      0     d
>>> df['col_1'] # Subscript access
[3, 2, 1, 0]
>>> df.col_1 # Attribute access
[3, 2, 1, 0]
>>> df[df.col_1 > 1] # filtering works
     col_1 col_2
0      3     a
1      2     b
>>> df[(df.col_1 > 1) & (df.col_2 == 'a')]
     col_1 col_2
0      3     a
>>> df['col_1'] = df.col_1.apply(str) # Apply is available
>>> df.col_1
['3', '2', '1', '0']
>>> list(df.iterrows()) # returns a generator of dictionaries
[{'col_1': '3', 'col_2': 'a'}, {'col_1': '2', 'col_2': 'b'}, {'col_1': '1', 'col_2': 'c'}, {'col_1': '0', 'col_2': 'd'}]

Tested on

  • Python 3.7

  • Jython 2.7

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

mframe-0.2.1.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distributions

mframe-0.2.1-py2.py3-none-any.whl (3.7 kB view hashes)

Uploaded Python 2 Python 3

mframe-0.2.1-py2.7.egg (11.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page