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

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

  • Выбрать ячейки в электронной таблице Excel
  • Скопируйте их, используя Ctrl + C
  • Получить содержимое выбранных ячеек в виде списка python или массива numpy в оболочке IPython?

Ответ 1

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

  • from numpy import array
  • Скопировать ячейки из электронной таблицы
  • Нажмите Alt+V вместо Ctrl+V

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

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

Или вы можете использовать метод pandas library 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, который действует аналогично электронной таблице. Об этом вы можете узнать в официальной документации.

Ответ 2

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

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

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

Теперь у вас есть что-то вроде этого:

1, 2, 3
4, 5, 6

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

Вы можете либо

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

Ответ 3

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

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

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

ipython_paste

Вставить буфер обмена в Windows. Если enable_ipython_paste_list_of_lists имеет значение True, попробуйте преобразовать данные с разделителями в список списка списков или представление массива. Если enable_ipython_paste_for_paths == True, то измените \\ в/и пробелы в пространство.