【问题标题】:Copying excel data into a python list in IPython using clipboard?使用剪贴板将excel数据复制到IPython中的python列表中?
【发布时间】:2013-08-19 10:49:42
【问题描述】:

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

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

【问题讨论】:

  • 实际上很清楚@Norfeldt 在问什么。我会稍微修改一下这个问题。
  • 现在完全清楚被问到的是什么。这个问题应该重开!!

标签: python ipython


【解决方案1】:

更新:看来@PauloAlmeida 提到的readline 的东西在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 对象。您可以在他们的官方documentation 中找到更多相关信息。

【讨论】:

  • 这正是我所缺少的。谢谢!
【解决方案2】:

这是我通常做的:

1:获取csv文件

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

现在你有这样的东西:

1, 2, 3
4, 5, 6

2:获取python列表

你可以

  • 使用csv 加载您的csv 文件;或
  • 使用编辑器的搜索/替换功能将行首/行尾替换为“[”和“]”,然后将粘贴复制到 ipython。

【讨论】:

    【解决方案3】:

    如果你在 Windows 上,你可以使用PyReadline,它有一个智能粘贴功能:

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

    另见documentation for clipboard functions

    ipython_paste

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

    【讨论】:

    猜你喜欢
    • 2017-10-03
    • 2014-09-27
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    相关资源
    最近更新 更多