python - 将 3D 数组导出到 Excel 工作簿
问题描述
我有一个形状为 (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,:])
键错误:'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.
解决方案
下面的代码会产生我认为您正在寻找的输出。
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()
推荐阅读
- swift - 尝试劫持根视图控制器时收到 SIGABRT 错误
- excel - 使用 OnTime 宏停止潜艇的按钮不会停止
- android - 当应用程序在后台时,FCM 从不交付
- html - 仅使用 CSS 的导航栏动画/过渡
- angular - 我可以在 HTML iframe 中使用 Angular 5(不是 AngularJS)应用程序吗?
- jsp - jsp-如何连接字符串和变量?
- java - 我想通过扩展字符串执行计算“添加”。怎么办?
- php - 如何知道蛋糕壳中调用了哪些控制器->动作?
- system-verilog - 状态机在 Signal Tap 上转换为不可能的状态
- highcharts - 如何在highcharts x-range中将工具提示放在点上方?