Копирование данных excel в список python в IPython с помощью буфера обмена? [закрытый]

есть ли способ, чтобы выполнить следующие работы:

  1. выберите ячейки в электронной таблице Excel
  2. скопируйте их с помощью Ctrl + C
  3. получить содержимое выбранных ячеек в виде списка python или массива numpy в оболочку IPython?

3 ответов


обновление: кажется,readline вещь, о которой упоминал @PauloAlmeida, включена по умолчанию в версии 1.0 IPython. Поэтому все, что вам нужно сделать, это:

  1. from numpy import array
  2. скопируйте ячейки из электронной таблицы
  3. нажмите Alt+V вместо Ctrl+V

и вы получите в IPython что-то вроде:

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

или вы можете использовать библиотеку панд read_clipboard метод.

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

это вернет вам объект pandas DataFrame, который действует аналогично электронной таблице. Вы можете найти больше об этом в своем официальном документация.


вот что я обычно делаю:

1: получить файл csv

копировать-вставьте нужные ячейки в новый документ Excel. Нажмите "Файл", затем "Сохранить как". Выберите "Сохранить как тип: CSV". Закройте Excel и откройте файл с помощью блокнота или другого редактора.

у вас есть что-то вроде этого:
1, 2, 3
4, 5, 6

2: получить список python

вы можете

  • использовать CSV-файла для загрузки csv-файла; или
  • использовать функциональность поиска / замены вашего редактора для замены начала / конца строк на " ["И"]", а затем скопируйте вставку в ipython.

Если вы находитесь в Windows, вы можете использовать PyReadline, который имеет функцию Smart вставить:

  • копировать и вставлять с помощью буфера обмена
  • смарт-паста для удобного использования с IPython. Преобразование данных, разделенных вкладками, в список python или массив numpy.

см. также документация для функций буфера обмена:

ipython_paste

вставить буфер обмена windows. Если enable_ipython_paste_list_of_lists верно затем попытаться конвертировать tabseparated данные предст список списков или предст массива. Если enable_ipython_paste_for_paths==True, то измените \\ to / и пробелы в \space.