11

有没有办法执行以下工作流程:

  1. 选择 Excel 电子表格中的单元格
  2. 使用 Ctrl+C 复制它们
  3. 以 python 列表或 numpy 数组的形式将所选单元格的内容获取到 IPython shell 中?
4

3 回答 3

18

更新:似乎readline@PauloAlmeida 提到的东西在 IPython 的 1.0 版本中默认打开。所以你所要做的就是:

  1. from numpy import array
  2. 复制电子表格中的单元格
  3. 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 对象。你可以在他们的官方文档中找到更多关于它的信息。

于 2013-08-19T11:33:22.483 回答
0

这是我通常做的:

1:获取一个csv文件

将所需的单元格复制粘贴到新的 Excel 文档中。单击“文件”,然后单击“另存为”。选择“保存类型:CSV”。关闭 Excel 并使用记事本或其他编辑器打开文件。

现在你有这样的东西:

1, 2, 3
4, 5, 6

2:获取python列表

你可以

  • 使用csv加载您的 csv 文件;或者
  • 使用编辑器的搜索/替换功能将行的开始/结束替换为“[”和“]”,然后将粘贴复制到 ipython。
于 2013-08-19T11:17:41.700 回答
0

如果您使用的是 Windows,则可以使用PyReadline,它具有智能粘贴功能:

  • 使用剪贴板复制和粘贴
  • 智能粘贴,方便与 ipython 一起使用。将制表符分隔的数据转换为 python 列表或 numpy 数组。

另请参阅剪贴板功能的文档

ipython_paste

粘贴窗口剪贴板。如果 enable_ipython_paste_list_of_lists 为 True 则尝试将制表符分隔的数据转换为列表列表的 repr 或数组的 repr。如果 enable_ipython_paste_for_paths==True 则将 \\ 更改为 / 并将空格更改为 \space。

于 2013-08-19T12:33:51.200 回答