Копирование данных 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, то измените \\ в/и пробелы в пространство.