有没有办法执行以下工作流程:
- 选择 Excel 电子表格中的单元格
- 使用 Ctrl+C 复制它们
- 以 python 列表或 numpy 数组的形式将所选单元格的内容获取到 IPython shell 中?
更新:似乎readline
@PauloAlmeida 提到的东西在 IPython 的 1.0 版本中默认打开。所以你所要做的就是:
from numpy import array
Alt+V
而不是Ctrl+V
你会在 IPython 中得到类似的东西:
array([[1, 1], [2, 2]])
或者您可以使用 pandas 库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 对象。你可以在他们的官方文档中找到更多关于它的信息。
这是我通常做的:
将所需的单元格复制粘贴到新的 Excel 文档中。单击“文件”,然后单击“另存为”。选择“保存类型:CSV”。关闭 Excel 并使用记事本或其他编辑器打开文件。
现在你有这样的东西:
1, 2, 3
4, 5, 6
你可以
如果您使用的是 Windows,则可以使用PyReadline,它具有智能粘贴功能:
- 使用剪贴板复制和粘贴
- 智能粘贴,方便与 ipython 一起使用。将制表符分隔的数据转换为 python 列表或 numpy 数组。
另请参阅剪贴板功能的文档:
ipython_paste
粘贴窗口剪贴板。如果 enable_ipython_paste_list_of_lists 为 True 则尝试将制表符分隔的数据转换为列表列表的 repr 或数组的 repr。如果 enable_ipython_paste_for_paths==True 则将 \\ 更改为 / 并将空格更改为 \space。