There is no possible way to export a single cell output in Jupyter, as of now, but what you can do is to convert the entire notebook to a more useful format and then trim out only the parts that you need. This is not optimal, but it's still better than your current workaround, at least concerning the quality of the output.
You can do this in different ways:
- File -> Export Notebook as... -> Your preferred file format
If you want to do it programmatically, you can use nbconvert from the command line like this:
nbconvert --to (your preferred output format) yourNotebook.ipynb
You can also do it from inside your notebook, executing this code in a cell (for HTML, in this example):
from nbconvert import HTMLExporter
import codecs
import nbformat
notebook_name = 'YOUR_NOTEBOOK_NAME.ipynb'
output_file_name = 'output.html'
exporter = HTMLExporter()
output_notebook = nbformat.read(notebook_name, as_version=4)
output, resources = exporter.from_notebook_node(output_notebook)
codecs.open(output_file_name, 'w', encoding='utf-8').write(output)
Most libraries, though, allow you to export the result of your program to any desired outpout (pandas, matplotlib, altair...), so you probably should try to use them.