From: Jack Kamm <jackkamm@gmail.com>
To: Liu Hui <liuhui1610@gmail.com>
Cc: emacs-orgmode@gnu.org, Ihor Radchenko <yantar92@posteo.net>
Subject: Re: [PATCH] ob-python results handling for dicts, dataframes, arrays, and plots
Date: Fri, 18 Aug 2023 16:09:06 -0700 [thread overview]
Message-ID: <87edk0aqy5.fsf@gmail.com> (raw)
In-Reply-To: <CAOQTW-PUr9vXbNUie9DeeyanyxXKuacvUaTTB2NcfpU5G89Abw@mail.gmail.com>
Liu Hui <liuhui1610@gmail.com> writes:
> Hi,
>
> Thank you for the patch!
Thanks for your feedback, I've incorporated it into
https://github.com/jackkamm/org-mode/tree/python-results-revisited-2023
More specifically, here:
https://github.com/jackkamm/org-mode/commit/af1d18314073446045395ff7a3d1de0303e92586
> Do we need to limit the table/list size by default, or handle them
> only with relevant result type (e.g. `table/list')? Dataframe/array
> are often large.
I've updated the patch so that Dataframe/Array are converted to table
only when ":results table" is explicitly set now. If ":results table" is
not set, they will be returned as string by default.
So code blocks that return large dataframes/arrays can continue to be
safely run.
Note I did make an additional change to Numpy array default behavior:
Previously, numpy arrays would be returned as table, but get mangled
when they were very large, e.g.:
#+begin_src python
import numpy as np
return np.zeros((30,40))
#+end_src
#+RESULTS:
| (0 0 0 ... 0 0 0) | (0 0 0 ... 0 0 0) | (0 0 0 ... 0 0 0) | ... | (0 0 0 ... 0 0 0) | (0 0 0 ... 0 0 0) | (0 0 0 ... 0 0 0) |
But now, Numpy array is returned in string form by default, in the same
format as in Jupyter:
#+begin_src python
import numpy as np
return np.zeros((30,40))
#+end_src
#+RESULTS:
: array([[0., 0., 0., ..., 0., 0., 0.],
: [0., 0., 0., ..., 0., 0., 0.],
: [0., 0., 0., ..., 0., 0., 0.],
: ...,
: [0., 0., 0., ..., 0., 0., 0.],
: [0., 0., 0., ..., 0., 0., 0.],
: [0., 0., 0., ..., 0., 0., 0.]])
>> + if isinstance(result, pandas.DataFrame):
>> + result = [[''] + list(result.columns), None] + \
>
> Here we can use '{}'.format(df.index.name) to show the name of index
Patch has been updated to print the index name when it is non-None.
> Maybe `org-babel-python--def-format-value' can be evaluated only once
> in the session mode? It would shorten the string sent to the python
> shell, where temp files are used for long strings.
Patch has been updated to evaluate `org-babel-python--def-format-value'
once per session.
next prev parent reply other threads:[~2023-08-18 23:10 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-15 23:46 [PATCH] ob-python results handling for dicts, dataframes, arrays, and plots Jack Kamm
2023-08-16 9:32 ` Ihor Radchenko
2023-08-17 4:04 ` Jack Kamm
2023-08-17 9:14 ` gerard.vermeulen
2023-08-17 12:10 ` Ihor Radchenko
2023-08-18 4:37 ` gerard.vermeulen
2023-08-18 6:01 ` gerard.vermeulen
2023-08-18 23:30 ` Jack Kamm
2023-08-19 8:50 ` Ihor Radchenko
2023-08-20 18:01 ` Jack Kamm
2023-08-20 18:21 ` Ihor Radchenko
2023-08-19 8:58 ` Ihor Radchenko
2023-08-20 18:13 ` Jack Kamm
2023-08-20 18:25 ` Ihor Radchenko
2023-08-22 23:37 ` Jack Kamm
2023-08-17 12:07 ` Ihor Radchenko
2023-08-18 22:49 ` Jack Kamm
2023-08-17 5:35 ` Liu Hui
2023-08-18 23:09 ` Jack Kamm [this message]
2023-08-20 12:13 ` Liu Hui
2023-08-20 18:31 ` Jack Kamm
2023-08-21 6:21 ` Liu Hui
2023-08-22 23:44 ` Jack Kamm
2023-08-17 11:57 ` Ihor Radchenko
2023-08-18 23:18 ` Jack Kamm
2023-08-19 8:54 ` Ihor Radchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87edk0aqy5.fsf@gmail.com \
--to=jackkamm@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=liuhui1610@gmail.com \
--cc=yantar92@posteo.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).