gpt4 book ai didi

python - 如何将 Numpy 数组粘贴到 Excel

转载 作者:太空狗 更新时间:2023-10-29 22:07:59 26 4
gpt4 key购买 nike

我有多个使用 Numpy 和 SciPy 处理的文件,但我需要提供一个 Excel 文件。如何有效地将巨大的 numpy 数组复制/粘贴到 Excel?

我尝试转换为 Pandas 的 DataFrame 对象,它具有非常有用的函数 to_clipboard(excel=True),但我大部分时间都在将数组转换为 DataFrame。

我不能简单地将数组写入 CSV 文件然后在 excel 中打开它,因为我必须将数组添加到现有文件;使用 xlrd/xlwt 和其他 Excel 工具很难实现。

最佳答案

我最好的解决方案是将数组转换为字符串,然后使用 win32clipboard 将其发送到剪贴板。这不是一个跨平台的解决方案,但话又说回来,Excel 并不是在所有平台上都可用。

Excel 使用制表符 (\t) 标记列更改,使用 \r\n 指示行更改。

相关代码为:

import win32clipboard as clipboard

def toClipboardForExcel(array):
"""
Copies an array into a string format acceptable by Excel.
Columns separated by \t, rows separated by \n
"""
# Create string from array
line_strings = []
for line in array:
line_strings.append("\t".join(line.astype(str)).replace("\n",""))
array_string = "\r\n".join(line_strings)

# Put string into clipboard (open, clear, set, close)
clipboard.OpenClipboard()
clipboard.EmptyClipboard()
clipboard.SetClipboardText(array_string)
clipboard.CloseClipboard()

我已经使用随机形状数组 (1000,10000) 测试了这段代码,最大的瓶颈似乎是将数据传递给函数。 (当我在函数的开头添加 print 语句时,我仍然需要等待一段时间才能打印任何内容。)

编辑: 上一段介绍了我在 Python Tools for Visual Studio 中的经验。在这种环境下,打印语句似乎被延迟了。在直接命令行界面中,瓶颈在循环中,如预期的那样。

关于python - 如何将 Numpy 数组粘贴到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22488566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com