Copying excel data into a python list in IPython using clipboard?

前端 未结 3 2118
广开言路
广开言路 2021-02-14 04:06

Is there a way to perform the following workflow:

  1. Select cells in an Excel spreadsheet
  2. Copy them using Ctrl+C
  3. Get the content the selected cells
相关标签:
3条回答
  • 2021-02-14 04:38

    If you are on Windows, you can use PyReadline, which has a smart paste feature:

    • Copy and paste using the clipboard
    • Smart paste for convenient use with ipython. Converting tab separated data to python list or numpy array.

    See also the documentation for clipboard functions:

    ipython_paste

    Paste windows clipboard. If enable_ipython_paste_list_of_lists is True then try to convert tabseparated data to repr of list of lists or repr of array. If enable_ipython_paste_for_paths==True then change \\ to / and spaces to \space.

    0 讨论(0)
  • 2021-02-14 04:45

    Here is what I usually do:

    1: get a csv file

    Copy-paste the cells you want into a new Excel document. Click 'File' then 'Save as'. Select 'Save as type: CSV' . Close Excel and open the file with notepad or other editor.

    Now you have something like this:

    1, 2, 3
    4, 5, 6
    

    2: get a python list

    You can either

    • use csv to load your csv file; or
    • use the search/replace functionality of your editor to replace start/end of lines with '[' and ']' then copy paste to ipython.
    0 讨论(0)
  • 2021-02-14 04:48

    Update: It seems that the readline thing that @PauloAlmeida mentioned is turned on by default in the 1.0 verison of IPython. So all you have to do is:

    1. from numpy import array
    2. Copy the cells from the spreadsheet
    3. Hit Alt+V instead of Ctrl+V

    And you will get in IPython something like:

    array([[1, 1], [2, 2]])
    

    Or you can use the pandas library read_clipboard method.

    import pandas as pd
    pd.read_clipboard()            # If you have selected the headers
    pd.read_clipboard(header=None) # If you haven't selected the headers
    

    This will return you a pandas DataFrame object which acts similarly to a spreadsheet. You can find more about it in their official documentation.

    0 讨论(0)
提交回复
热议问题