【问题标题】:exporting 3D array to Excel workbook将 3D 数组导出到 Excel 工作簿
【发布时间】:2019-01-12 05:05:03
【问题描述】:

我有一个形状为 (t,l,b)=(122,40,30) 的 3D 数组 (TAU),我想将它作为 2D 导出到 Excel 工作簿,第三维是工作表的数量。所以基本上结果是 30 张,每张都有 122 行和 40 列的表格。形成这个数组需要三个for 循环(t、l 和 b),最后我得到最终结果并尝试将其导出到 Excel 工作簿中。
我是 Python 新手,我的语法似乎有问题。我正在使用熊猫。 这是似乎导致错误的代码部分。请注意,TAU 被创建为

TAU=np.zeros(len(t),40,30)

writer = pd.ExcelWriter((stn + '_AOD.xlsx'), engine='xlsxwriter')
Time = pd.DataFrame(t)

for i in range(0, 40):
    TAU = pd.DataFrame(nc.variables['TAU'][:,i,:])
    Time.to_excel(writer, index=False, header=['DateTime'], sheet_name='bin%d' % i)
    TAU.to_excel(writer, index=False,header=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], sheet_name='bin%d' % i, startcol=1)

 writer.save()

 np.close()

错误: TAU = pd.DataFrame(nc.variables['TAU'][:,i,:])

KeyError: 'TAU'

Exception ignored in: <bound method Workbook.__del__ of
<xlsxwriter.workbook.Workbook object at 0x0000000007D3EFD0>> Traceback
(most recent call last):   File
"C:\ProgramData\Anaconda3\lib\site-packages\xlsxwriter\workbook.py",
line 149, in __del__ Exception: Exception caught in workbook
destructor. Explicit close() may be required for workbook.

【问题讨论】:

    标签: python excel python-3.x pandas multidimensional-array


    【解决方案1】:

    下面的代码会产生我认为您正在寻找的输出。

    data = np.zeros((122, 40, 30))
    
    writer = pd.ExcelWriter('file.xlsx', engine='xlsxwriter')
    
    for i in range(0, 30):
        df = pd.DataFrame(data[:,:,i])
        df.to_excel(writer, sheet_name='bin%d' % i)
    
    writer.save()
    

    【讨论】:

    • 是的,有帮助!我还必须将 time = num2date(dateti, units='days since 0001-01-01 00:00:00.0', calendar='gregorian') /// 转换为第一列。感谢您的提示,它有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多