熊猫read_clipboard打破熊猫0.12?

时间:2013-08-13 08:13:09

标签: python pandas

由于我将pandas从0.11更新到0.12,read_clipboard似乎不再起作用了:

import pandas as pd

df = pd.read_clipboard()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-6dead334eb54> in <module>()
----> 1 df = pd.read_clipboard()

C:\Python33\lib\site-packages\pandas\io\clipboard.py in read_clipboard(**kwargs)
     16     from pandas.io.parsers import read_table
     17     text = clipboard_get()
---> 18     return read_table(StringIO(text), **kwargs)
     19 
     20 

TypeError: initial_value must be str or None, not bytes

我做的是:

  • 在Excel 2010中打开csv文件

  • 复制一系列单元格,包括标题

  • 如上面的代码块所述,在iPython Qt控制台中执行read_clipboard

降级到0.11后,此程序再次正常工作。我正在使用pandas for python 3.3 Win7 32位。

这是大熊猫的错误​​吗?有关如何解决此问题的任何建议吗?

2 个答案:

答案 0 :(得分:2)

它是py3中字符串中的一个错误;我会在master中修复它,但你可以进行本地编辑。

C:\python33\Lib\site-packages\pandas\io\clipboard.py

中的

text = clipboard_get()

之后

添加text = text.decode('UTF-8')

显然,剪贴板例程会在py3

中返回字节(而不是字符串)

答案 1 :(得分:0)

我一直在寻找解决方案,似乎与ctypes有关。 您可以在此处找到更多信息:https://github.com/pandas-dev/pandas/issues/13946

一种解决方法可能是将呼叫替换为

text = clipboard_get()

in

C:\python33\Lib\site-packages\pandas\io\clipboard.py 

以下内容:

    from tkinter import Tk
    r = Tk()
    text = r.selection_get(selection="CLIPBOARD")

Here is an image with the Edit