写在pandas文件上的问题

我目前正在尝试使用pandas函数tr8 pd.to_excel从文件格式编写一个excel文件。 但是,它写的excel文件,但在Excel中打开时,我看不到完整的数据。 我附上了tr8的代码

 output_file = pd.ExcelWriter('20131001103311.xlsx') widths = [1, 8, 2, 4, 2, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 10, 1] df = pd.read_fwf('20131001103311.tr8', widths=widths, header=True) df.columns = ['TIP. REG.', 'COD. EST.', 'TIP. INF.', 'AGNO', 'DEL', 'ENE', 'OBS', 'FEB', 'OBS', 'MAR', 'OBS', 'ABR', 'OBS', 'MAY', 'OBS', 'JUN', 'OBS', 'JUL', 'OBS', 'AGO', 'OBS', 'SEP', 'OBS', 'OCT', 'OBS', 'NOV', 'OBS', 'DIC', 'OBS', 'ESP.', 'TIP. DATO'] df.to_excel(output_file, '20131001103311') output_file.save() 

我把你的程序简化为2列数据进行testing:

 import pandas as pd output_file = pd.ExcelWriter('20131001103311.xlsx') widths = [10, 10] df = pd.read_fwf('20131001103311.tr8', widths=widths, header=True) df.columns = ['TIP. REG.', 'COD. EST.'] df.to_excel(output_file, '20131001103311') output_file.save() 

而我运行它反对以下固定宽度格式fwf文件:

 $ cat 20131001103311.tr8 TIP. REG. COD. EST. 1 1000 2 300 3 7000 4 600 5 12345 

我没有得到任何执行错误,输出看起来应该是这样的:

在这里输入图像说明

由于参数header=True已经传递给read_fwf所以第一行数据丢失了。

所以它似乎不是一个pandas问题。

我会查看固定宽度字段文件中的列。 也许在阅读之后将其打印出来,看看您提供给df.columns的列名是否全部被正确parsing。

更新 :看@ jchavarro试图上传的input数据和输出文件的图像看起来可能有问题在这里。 至lessExcel输出不会与DataFrame数据绑定。 可能是由于重复的OBS列。

更新2 :这是一个问题。 我已经提出了GitHub并提交了一个修复 。

更新3 :我为上述问题创build了一个解决scheme,现在已经合并到了pandas主分支中,并且应该作为0.13版本的一部分发布。