3

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()
4

1 に答える 1

2

テスト用に、プログラムを 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 で取り上げ、修正を提出しました。

更新 3 : 上記の問題に対する修正を作成しました。これは pandas マスター ブランチにマージされ、0.13 リリースの一部としてリリースされる予定です。

于 2013-10-14T19:12:59.723 に答える