Dataframe viewer needed

I think a dataframe viewer where I can look at each row and column and if needed can scroll across up and down are needed.

I know atom has a CSV editor plugin. Perhaps can repurpose that. I know it’s a lot of work but it feels so neccesary!

10 Likes

This is not what you are asking for, but may nevertheless be of interest to you
https://github.com/davidanthoff/DataVoyager.jl

This is a problem that I’ve never seen truly solved. What is really needed is a dataframe API such as DataFrames.jl, IndexedTables.jl, pandas or R dataframes which also has a GUI module preferably also with basic plotting. To my knowledge nothing like this exists even for pandas or R. The closest thing I’ve ever seen is people using the “data viewer” in spyder or pycharm to get a look at pandas dataframe. I also found this python module very useful and it looks like it has matured significantly since I’ve last used it. I wonder how difficult it would be to get it to plug into Julia data?

A fast data viewer would easily put Julia ahead of R in my book. As stated above, python doesn’t have a good standard data viewer. R’s is pretty slow, with either Base R or Rstudio.

Jupyter Lab has a very sleek and responsive table viewer, but as it stands now, the only way to use it is to import a .csv. I submitted a feature request to have a function like R’s View() to use that table viewer for dataframes. So hopefully Jupyter Lab will soon be able to have a robust dataviewer. From the looks of it, it will be faster and more feature complete than R’s.

Stata is the benchmark for this, imo. Their data viewer is ridiculously responsive, but they have had a full time team working on this for years and have clearly figured out how to get as much mileage as possible from Qt.

3 Likes

If Julia will have a data viewer, I hope it works for multiple formats, including JLD, JLD2, hdf5,fst, RData, etc. This feature does not exist in R or Python, but I guess it should be useful.

I think the suggestion would be for a viewer for tabular objects within an open session of Julia, like DataFrames or matrices, rather than for viewing compressed data formats.

A data viewer can be very responsive if it’s just looking at a window (or sub array) of the overall data set. A caching adapter would have to be built around various file formats. Perhaps a random access DataStream would do…?

If there’s a well defined standard I nterface for accessing and scrolling the window, a GUI would just be an addon.

1 Like

Since you can store anything in those formats, probably going to make the data viewer much more complicated. If you were always looking at things that are essentially AbstractVecOrMat it is a much easier place to start.

@davidanthoff shared https://github.com/JuliaComputing/TableView.jl on slack which looks pretty close to what the OP was interesting in.

4 Likes

Very cool. Hopefully there is a way to use it with a browser normally, as I intensely dislike Jupyter notebooks.

It looks pretty cool! It’s based on WebIO, so I imagine it should work in Juno and/or in an Electron window as well.

EDIT: I’ve just checked: it actually does work in Juno inside the plot pane

1 Like

That looks like exactly what I needed, too bad it does not work in Julia v1

GitHub - tpapp/BrowseTables.jl: Julia package for browsing tables that that implement the Tables.jl interface as HTML. is a simpler version that works very reliably.

3 Likes

I guess this should be an IDE feature…

I was pretty sure @pfitzseb implemented this for Juno once? Anyway, there’s a nice table viewer in Atom (tablr) that could probably be repurposed.

Can TableView.jl and BrowseTables.jl edit the data or just view it? Because we need to modify it as well. At least modify the content of each “cell”, and preferably being also able to add new rows and columns.

See if GitHub - mwsohn/DFViews.jl suits your need:

] add GitHub - mwsohn/DFViews.jl
using DFViews
dfview(yourdf)

This is a very simple, even primitive data viewer. Numbers are not right aligned any more after Julia 1.0 but I did not have time to fix it. By the way, it relies on Gtk.jl and two other packages I wrote. Install them in the following order:

add GitHub - mwsohn/Labels.jl: Provides functionality to attach variable and value labels to DataFrames
add GitHub - mwsohn/Stella.jl: Julia functions that mimics stata functionality

1 Like

Sweet! BrowseTables worked for me, directly on DataFrames.

using BrowseTables, Tables
open_html_table(df)
1 Like

Thanks! Installation worked (Stella installation worked only after Labels was installed).

In Juno it is not working for me: I just get something the String printout of a Gtk object:

julia> dfview(tmp2)
Gtk.GtkWindowLeaf(name="", parent, width-request=-1, height-request=-1,
 visible=TRUE, sensitive=TRUE, app-paintable=FALSE, can-focus=FALSE,
 has-focus=FALSE, is-focus=FALSE, focus-on-click=TRUE, ...

etc…

A data frame viewer is certainly a plus, but I am not sure if it is a good idea to allow cell editing…

1 Like