pandastable

Table analysis in Tkinter using pandas DataFrames.

https://github.com/dmnfarrell/pandastable

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (20.7%) to scientific vocabulary

Keywords

data-analysis dataframe pandas plotting scientific tkinter
Last synced: 6 months ago · JSON representation

Repository

Table analysis in Tkinter using pandas DataFrames.

Basic Info
  • Host: GitHub
  • Owner: dmnfarrell
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 8.99 MB
Statistics
  • Stars: 653
  • Watchers: 29
  • Forks: 125
  • Open Issues: 25
  • Releases: 23
Topics
data-analysis dataframe pandas plotting scientific tkinter
Created almost 11 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog Contributing License

README.md

pandastable

PyPI version shields.io License: GPL v3

Introduction

The pandastable library provides a table widget for Tkinter with plotting and data manipulation functionality. It uses the pandas DataFrame class to store table data. Pandas is an open source Python library providing high-performance data structures and data analysis tools. Tkinter is the standard GUI toolkit for python. It is intended for the following uses:

  • for python/tkinter GUI developers who want to include a table in their application that can store and process large amounts of data
  • for non-programmers who are not familiar with Python or the pandas API and want to use the included DataExplore application to manipulate/view their data
  • it may also be useful for data analysts and programmers who want to get an initial interactive look at their tabular data without coding

The DataExplore application using these classes is included in the distribution and is a self-contained application for educational and research use. Currently this focuses on providing a spreadsheet like interface for table manipulation withconfigurable 2D/3D plotting. A windows standalone installer is available that does not require Python installation.

Documentation is at http://pandastable.readthedocs.io/

Note: dataexplore has now been re-implemented in the Qt toolkit in a new app called Tablexplore. If you're only interested in the application and not the Tkinter widget, the new app is recommended.

Note 2: pandas 1.0 no longer supports msgpack format so the project files now use pickle. You will not be able to open your old project files in pandastable versions >0.12.1.

Installation

Requires python>=3.6 or 2.7 and numpy, matplotlib and pandas. These requirements should be satisfied automatically when using: (You may need to use pip3 to specify python version 3).

pip install pandastable

Install latest from github:

pip install -e git+https://github.com/dmnfarrell/pandastable.git#egg=pandastable

see the docs for more details on installing.

Current features

  • add, remove rows and columns
  • spreadsheet-like drag, shift-click, ctrl-click selection
  • edit individual cells
  • sort by column, rename columns
  • reorder columns dynamically by mouse drags
  • set some basic formatting such as font, text size and column width
  • save the DataFrame to supported pandas formats
  • import/export of supported text files
  • rendering of very large tables is only memory limited
  • interactive plots with matplotlib, mostly using the pandas plot functions
  • basic table manipulations like aggregate and pivot
  • filter table using built in dataframe functionality
  • graphical way to perform split-apply-combine operations

FAQ

What version of Python?

Python versions >=2.7 and >=3.6 are compatible. Python 3 is recommended if possible. For a similar table widget that works without pandas dataframes and has minimal dependencies see the previous incarnation, tkintertable.

Why use Tkinter?

Tkinter is still the standard GUI toolkit for python though it is sometimes disliked for its outdated appearance (especially on linux) and somewhat limited widget set. However largely because this library is based on an older one called tkintertable for drawing the table, I have stuck with tkinter rather than start from scratch using another toolkit.

Is this just a half-baked spreadsheet?

Hopefully not. Some of the basic functions are naturally present since it's a table. But there is no point in trying to mimic a proper spreadsheet app. pandas can do lots of stuff that would be nice for a non-programmer to utilize and that might not be available in a spreadsheet application.

Are there other better tools for dataframe visualization?

This depends as always on what is required. The ipython notebook is good for interactive use. bokeh is an advanced interactive plotting tool using modern generation web technologies for in browser rendering. This can handle dataframes. The goal of this project is to use DataFrames as the back end for a table widget that can be used in a desktop appplication.

The DataExplore application

Installing the package creates a command dataexplore in your path. Just run this to open the program. This is a standalone application for data manipulation and plotting meant for education and basic data analysis. See the home page for this application at http://dmnfarrell.github.io/pandastable/

For programmers

  • Check the Code examples section in the documentation.
  • See https://pandastable.readthedocs.io/en/latest/modules.html for API docs.

Links

  • http://openresearchsoftware.metajnl.com/articles/10.5334/jors.94/
  • http://dmnfarrell.github.io/pandastable/
  • https://youtu.be/Ss0QIFywt74
  • Interview about dataexplore

Citation

If you use this software in your work please cite the following article:

Farrell, D 2016 DataExplore: An Application for General Data Analysis in Research and Education. Journal of Open Research Software, 4: e9, DOI: http://dx.doi.org/10.5334/jors.94

Owner

  • Name: Damien Farrell
  • Login: dmnfarrell
  • Kind: user
  • Location: Dublin, Ireland
  • Company: University College Dublin

Research Fellow UCD Veterinary School ORCID ID: 0000-0003-3020-7945

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 27
  • Watch event: 24
  • Issue comment event: 12
  • Push event: 7
  • Pull request event: 1
  • Fork event: 6
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 27
  • Watch event: 24
  • Issue comment event: 12
  • Push event: 7
  • Pull request event: 1
  • Fork event: 6

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 484
  • Total Committers: 20
  • Avg Commits per committer: 24.2
  • Development Distribution Score (DDS): 0.147
Past Year
  • Commits: 8
  • Committers: 2
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.125
Top Committers
Name Email Commits
dmnfarrell f****n@g****m 413
farrell.damien@gmail.com f****n@g****m@c****c 40
dmnfarrell f****l@b****e 5
816-8055 8****5@o****e 3
Bertrand b****s@h****m 3
Gregory Brodsky g****y@b****m 3
machinelearning2014 t****4@g****m 2
Aivar Annamaa a****a@g****m 2
occoder i****c@g****m 2
Ismael Venegas Castelló i****7@g****m 1
Paul p****t@u****v 1
Robert P. Goldman r****n@g****g 1
Soham Jain 3****n 1
gdrosos t****4@a****r 1
WlodekLipski l****k@g****m 1
MattK m****t@h****m 1
Gregory Brodsky G****1@i****m 1
giveme5 2****3@q****m 1
Oscar Neira Garcia o****g@y****s 1
Burak Basaran b****k@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 117
  • Total pull requests: 17
  • Average time to close issues: about 1 year
  • Average time to close pull requests: about 2 months
  • Total issue authors: 80
  • Total pull request authors: 12
  • Average comments per issue: 2.89
  • Average comments per pull request: 0.76
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 5
  • Pull requests: 5
  • Average time to close issues: 6 months
  • Average time to close pull requests: 7 months
  • Issue authors: 4
  • Pull request authors: 2
  • Average comments per issue: 0.8
  • Average comments per pull request: 0.4
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • GBR-613 (7)
  • nira123 (5)
  • gsudhanshu (5)
  • arbitrager44 (5)
  • cgclark (3)
  • YogeshSakpal (3)
  • dkwdaft (2)
  • Adarsh-365 (2)
  • collinsavalon (2)
  • occoder (2)
  • mpy20 (2)
  • harines96 (2)
  • CypressA (2)
  • dmnfarrell (2)
  • AllanHOlesenBW (2)
Pull Request Authors
  • GBR-613 (7)
  • dependabot[bot] (2)
  • bigoulours (2)
  • inkenbrandt (1)
  • WlodekLipski (1)
  • sohamsjain (1)
  • hwpplayer1 (1)
  • b-basa (1)
  • machinelearning2014 (1)
  • gdrosos (1)
  • PlatonRaz (1)
  • Oneirag (1)
Top Labels
Issue Labels
enhancement (2) easy (1)
Pull Request Labels
dependencies (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 3,042 last-month
  • Total dependent packages: 6
  • Total dependent repositories: 59
  • Total versions: 24
  • Total maintainers: 1
pypi.org: pandastable

Library for embedding tables in Tkinter using pandas DataFrames

  • Versions: 24
  • Dependent Packages: 6
  • Dependent Repositories: 59
  • Downloads: 3,042 Last month
Rankings
Dependent repos count: 1.9%
Stargazers count: 2.6%
Downloads: 3.0%
Average: 3.8%
Forks count: 4.3%
Dependent packages count: 7.4%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • future *
  • matplotlib >=2.0
  • numexpr >=2.4
  • pandas >=1.1
  • xlrd >=0.9
doc/requirements.txt pypi
  • future *
  • matplotlib *
  • numpy *
  • pandas *
  • xlrd *