2

誰かがこれを手伝ってくれたら本当にありがたいです。私はPythonが初めてで、そこから列からデータを抽出し、それらをすべてまとめて日付を含む単一の行に配置する必要がある.txtファイルがたくさんあるということです...ファイルの各列は月を表します年と各行の対応する日の値 (次の画像で確認できるように)

         DIA       ENERO *  FEBRE *  MARZO *  ABRIL *  MAYO  *  JUNIO *  JULIO *  AGOST *  SEPTI *  OCTUB *  NOVIE *  DICIE *


       01                                                       .0       .0       .0       .0      5.0       .0
       02                                                     53.0      2.0       .0       .0       .0     10.0
       03                                                       .0     30.0       .0       .0       .0       .0
       04                                                       .0       .0       .0       .0     30.0       .0
       05                                                       .0       .0       .0       .0       .0       .0
       06                                                     24.0       .0       .0       .0       .0       .0
       07                                                       .0       .0       .0       .0       .0     17.0
       08                                                       .0       .0       .0       .0       .0       .0
       09                                                       .0     11.0       .0       .0       .0       .0
       10                                                       .0       .0       .0       .0       .0       .0
       11                                                      3.0       .0       .0     13.0       .0       .0
       12                                                       .0       .0       .0       .0       .0       .0
       13                                                       .0       .0       .0       .0     17.0       .0
       14                                              .0       .0       .0     18.0       .0      4.0     16.0
       15                                             6.0       .0       .0      3.0       .0       .0       .0
       16                                              .0       .0     32.0     10.0       .0       .0       .0
       17                                              .0       .0     17.0      8.0       .0       .0       .0
       18                                              .0       .0       .0       .0       .0       .0     52.0
       19                                             9.0       .0       .0      9.0     35.0       .0      2.0
       20                                             3.0       .0       .0       .0      5.0       .0       .0
       21                                              .0      5.0      2.0       .0       .0       .0       .0
       22                                              .0      9.0       .0       .0     10.0       .0    100.0
       23                                             1.0       .0       .0      1.6       .0       .0      6.0
       24                                             7.0       .0       .0       .0     27.0       .0       .0
       25                                            31.0       .0       .0       .0       .0       .0       .0
       26                                            52.0       .0       .0       .0       .0       .0       .0
       27                                              .0       .0       .0       .0       .0     14.0       .0
       28                                             2.0      3.0       .0       .0       .0       .0       .0
       29                                             2.0      9.0       .0       .0       .0     26.0       .0
       30                                              .0       .0       .0       .0     25.0       .0       .0
       31                                             3.0                .0     30.0                .0

ご覧のとおり、一部のデータが欠落しているため、欠落しているデータごとに 1 日あたり -99 を追加する必要があります。最終的に、私のファイルは次のようになります。

DATE            VALUE
01/01/1989      -99
01/02/1989      -99
01/03/1989      -99
.
.
.
05/14/1989      0.0
05/15/1989      6.0
.
.
12/31/1989      -99

ファイルの各行を '\t' と ' ' で分割して、後で列を追加するためにリスト内の各行を変換しようとしましたが、実行可能な結果はありません...

with open (file) as f:
for line in f:
   line = line.split(' ')

よろしくお願いします!

4

1 に答える 1

0

これは、記録を保持するためのよく考えられていない形式のようです。ただし、この形式を考えると、おそらく最善の策は、そのカテゴリに到達するまでの文字数を辞書に記録することです (つまり、{Enero: 15 など})。次に、各行について、数字 (数字の間には少なくとも 1 つのスペースが必要です) と、それらの前に表示された文字数を特定します。次に、試行錯誤により、文字数がいずれかのカテゴリの値に正確に対応するかどうかを確認できます。そうでない場合は、カテゴリの 2 以内であると判断でき、そのカテゴリに属する​​ものとして扱います。 . これにより、数値を適切なカテゴリに分類する精度がかなり高くなるはずです。これは、このタスクの最も難しい要素のようです。

于 2012-10-24T00:24:48.957 に答える