Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
__pycache__/
/*.csv
build/
*.egg-info/
*.egg-info/
dist/
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

The Visual Pandas Selector is a tool to visually select portions of numeric time-series data from a pandas dataframe. The tool is intended to provide an fast interactive way for manual data selection, as can be very useful in for example machine learning, regression or system identification.

The tool is configurable in order to plot a range of dataframe columns in vertically stacked subplots.
Hereby the user can specify which columns are plotted in which subplot. Furthermore, a histogram is included to get a rough idea on the distribution of the data.
Easily configure the tool to plot dataframe columns in vertically stacked subplots and view data distributions with the included histogram feature. With a simple click and drag, you can then select horizontal data windows, and let the tool automatically combine them into a new dataframe.

The user can subsequentially select different horizontal data windows via click and drag and he tool then automatically combines the visually selected sections into a new dataframe.

Expand All @@ -12,19 +11,19 @@ The user can subsequentially select different horizontal data windows via click

## Install

I am still working on publishing the project on PyPi (any help is apprechiated here). For now you can install the package locally from the top-level project folder using:
Install the package using:

```bash
pip install .
pip install vpselector
```

## Use in your project

Then simply import it using `import vpselector`. Then simply use:

- If your project does not contain a pyqt application: `select_visual_data(data : pd.DataFrame, plot_config : dict)`
- If your project does not contain a pyqt application: `vpselector.select_visual_data(data : pd.DataFrame, plot_config : dict)`

- To add the vpselector to an existing pyqt application: `select_visual_data_in_pyqt_app(data : pd.DataFrame, plot_config : dict, pyqt_app)`
- To add the vpselector to an existing pyqt application: `vpselector.select_visual_data_in_pyqt_app(data : pd.DataFrame, plot_config : dict, pyqt_app)`


## Run the Example
Expand Down
33 changes: 22 additions & 11 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,21 +1,33 @@
[project]
name = "vpselector"
version = "0.1.0"
version = "1.0.0"
description = "Visualize and interactively select time-series data from a pandas DataFrame."
readme = "README.md"
requires-python = ">=3.8"
license = {file = "LICENSE.txt"}
keywords = ["python", "dataframe", "pandas", "visualization", "data selection", "time-series data", "data tools", "data science", "data-driven engineering", "machine learning", "system identification"]
license = { file = "LICENSE.txt" }
keywords = [
"python",
"dataframe",
"pandas",
"visualization",
"data selection",
"time-series data",
"data tools",
"data science",
"data-driven engineering",
"machine learning",
"system identification",
]
authors = [
{email = "manuel.galliker@gmx.ch"},
{name = "Manuel Yves Galliker"}
{ email = "manuel@galliker.tech" },
{ name = "Manuel Yves Galliker" },
]
maintainers = [
{name = "Manuel Yves Galliker", email = "manuel.galliker@gmx.ch"}
{ name = "Manuel Yves Galliker", email = "manuel@galliker.tech" },
]
classifiers = [
"Development Status :: 4 - Beta",
"Programming Language :: Python"
"Programming Language :: Python",
]

dependencies = [
Expand All @@ -24,12 +36,11 @@ dependencies = [
"matplotlib>=3.7.1",
"seaborn>=0.11.1",
"overrides>=7.3.1",
"twine>=4.0.2",
]

[project.optional-dependencies]
format = [
"black >= 23.3.0"
]
format = ["black >= 23.3.0"]

[project.urls]
repository = "https://github.com/manumerous/vpselector"
repository = "https://github.com/manumerous/vpselector"
2 changes: 1 addition & 1 deletion src/vpselector/windows/main_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, data : pd.DataFrame , plot_config : dict, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
self.setWindowTitle("Visual Dataframe Selector")
self.setWindowTitle("Visual Pandas Selector")

self.data = data
self.cropped_data = pd.DataFrame()
Expand Down