【问题标题】:Problems writing to file in pandas在熊猫中写入文件的问题
【发布时间】:2013-10-22 05:28:01
【问题描述】:

我目前正在尝试使用 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()

【问题讨论】:

  • 解释“看不到完整的数据”...您看到了什么与您期望看到的相比?
  • 您好,谢谢您的时间。我可以把文件发给你,这里不会让我发图片或上传文件,或者不知道怎么做。谢谢。
  • 查看下面的更新评论。该问题似乎与多个 OBS 列有关。这可能是一个pandas 问题,您应该使用一些示例数据在 GitHub 上创建一个问题。
  • 我提出了一个issue with Pandas
  • 优秀!!!!恭喜!!!

标签: python excel pandas


【解决方案1】:

我将您的程序简化为 2 列数据进行测试:

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 的列名是否都已正确解析。

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

更新 2:这是一个问题。我已经在GitHub and submitted a fix 上提出了它。

更新 3:我为上述问题创建了一个修复程序,该问题现已合并到 pandas 主分支中,应该作为 0.13 版本的一部分发布。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 2022-01-06
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多