わかりました、これを行うための最良の方法が何であるかを自分自身に教えようとした後、私はこの特定の答えを探しました。私はPythonを初めて使用し、誰かが私を助けるための簡単な方法を知っていることを望んでいました!入力データファイルの例を次に示します。
Lat、Long、Var、Id、Date Time
47.022、-104.330,10、MBVR、12/12/20 06:36:00
47.022、-104.330,11、MBVR、12/12/20 06:26:00
48.810、 -104.253,10、MCOM、12/12/20 06:41:00
48.810、-104.253,13、MCOM、12/12/20 06:38:00
48.810、-104.253,12、MCOM、12/12/20 06:48:00
47.022、-104.330,11、MBVR、12/12/20 05:17:00
47.022、-104.330,10、MBVR、12/12/20 05:34:00
47.022、-104.330,12、 MBVR、12/12/20 05:24:00
ファイルにはさまざまなIDを含めることができますが、これは単なるサンプルです。データを取り込んで分離し、出力ファイルを書き込むプログラムを停止しました。これが私のコードの一部です:
csv_max = 'X:\\csv\\lsrwnd.dat'
my_file = open(csv_max, "rb")
rowadd = my_file.next()
for line in my_file:
items = line.split(",")
coords = items[0:2]
wind = items[2]
station = items[3]
timestamp = items[4]
それで、これがこの時点からの私の問題です。私がする必要があるのは、「id」列の最大値だけの出力ファイルを作成することです。したがって、「ステーション」が繰り返される場合は、そのステーションが出現するたびに実行し、最大の「id」を見つけて、それぞれの「ステーション」の「id」の最大値の行のみを返すプログラムが必要です。上記のデータ例から、私が欲しいのは次のとおりです。
48.810、-104.253,13、MCOM、12/12/20 06:38:00
47.022、-104.330,12、MBVR、12/12/20 05:24:00
残りは捨てることができます。MCOMの場合、最大IDは13で、MBVRの場合、最大は12です。したがって、50の異なるステーションがある場合、50の回線のみを返す必要があり、返された50のそれぞれがそのステーションの最大「ID」になります。出力ファイルを作成することはできますが、各ステーションおよびその他の要素の最大IDデータを取得するにはどうすればよいですか?辞書を使ってみましたが、最大値のキーとステーション名だけでなく、行全体を返す方法がわかりません。「日時」変数は重要ではありません(最新または最初の出現が必要であるという点で)。よろしくお願いします!