Python Pandas to_剪贴板()UnicodeEncodeError:&x27;ascii';编解码器可以';t编码字符

Python Pandas to_剪贴板()UnicodeEncodeError:&x27;ascii';编解码器可以';t编码字符,python,python-3.x,pandas,unicode,clipboard,Python,Python 3.x,Pandas,Unicode,Clipboard,我想将数据框数据传递到剪贴板,以便粘贴到Excel中。问题是,字符'\xe9'导致编码问题,如下所示: >>> df.to_clipboard() Traceback (most recent call last): File "C:\Python34\lib\site-packages\pandas\util\clipboard.py", line 65, in winSetClipboard hCd = ctypes.windll.kernel32.Global

我想将数据框数据传递到剪贴板,以便粘贴到Excel中。问题是,字符
'\xe9'
导致编码问题,如下所示:

>>> df.to_clipboard()
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pandas\util\clipboard.py", line 65, in winSetClipboard
    hCd = ctypes.windll.kernel32.GlobalAlloc(GMEM_DDESHARE, len(bytes(text))+1)
TypeError: string argument without an encoding

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#51>", line 1, in <module>
    df.to_clipboard()
  File "C:\Python34\lib\site-packages\pandas\core\generic.py", line 1028, in to_clipboard
    clipboard.to_clipboard(self, excel=excel, sep=sep, **kwargs)
  File "C:\Python34\lib\site-packages\pandas\io\clipboard.py", line 98, in to_clipboard
    clipboard_set(objstr)
  File "C:\Python34\lib\site-packages\pandas\util\clipboard.py", line 68, in winSetClipboard
    hCd = ctypes.windll.kernel32.GlobalAlloc(GMEM_DDESHARE, len(bytes(text, 'ascii'))+1)
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 543793: ordinal not in range(128)
在阅读了的文档之后,我注意到它说: 其他关键字被传递到
到_csv
。好的,通过“其他关键字”,我假设这意味着来自的关键字参数——具体来说,我想使用
encoding='cp1252'

尝试此操作时,
to_clipboard()
无法识别
编码
关键字:

df.to_clipboard(encoding='cp1252')
  File "C:\Python34\lib\site-packages\pandas\core\generic.py", line 1028, in to_clipboard
    clipboard.to_clipboard(self, excel=excel, sep=sep, **kwargs)
  File "C:\Python34\lib\site-packages\pandas\io\clipboard.py", line 95, in to_clipboard
    objstr = obj.to_string(**kwargs)
TypeError: to_string() got an unexpected keyword argument 'encoding'
是否有方法将所有数据传递到剪贴板(ascii和非ascii)


只需使用指定的编码将其编码为csv,然后将其扔到剪贴板上。

我复制了该问题,但无法修复,它弄乱了我的剪贴板,因此在未关闭IPython的情况下无法在任何应用程序中剪切和粘贴。也许您可以将df写入一个文件、cvs或excel。有完全相同的问题(使用
encode='utf-8'
),s希望知道是否有解决此问题的方法!(奇怪的是,这种情况并不总是发生,但只是在某些情况下)
df.to_clipboard(encoding='cp1252')
  File "C:\Python34\lib\site-packages\pandas\core\generic.py", line 1028, in to_clipboard
    clipboard.to_clipboard(self, excel=excel, sep=sep, **kwargs)
  File "C:\Python34\lib\site-packages\pandas\io\clipboard.py", line 95, in to_clipboard
    objstr = obj.to_string(**kwargs)
TypeError: to_string() got an unexpected keyword argument 'encoding'
df.to_clipboard(df.to_csv(encoding='cp1252'))