特定の条件でファイルから行を抽出するにはどうすればよいでしょうか?

特定の条件でファイルから行を抽出するにはどうすればよいでしょうか?

50K 行のファイルがあり、(Account、Cusip) を主キーと見なすとします。同じ主キーを持つ行の中で最後の行を保持したいと思います。同じ主キーを持つ行の中で最後の行を保持するには、どうすればよいでしょうか。

Account  Cusip   Amount  
A        a       500
A        a       450
A        b       500
B        b       600
B        b       350
C        a       300
C        c       100
C        c       200
C        c       500

期待される結果

Account  Cusip   Amount 
A        a       450
A        b       500
B        b       350
C        a       300
C        c       500

答え1

期待どおりに実行するには、次の Python スクリプトを使用します。ファイルには1.txt入力データが含まれています。

key1=''
key2=''
amount=''
with open('1.txt') as f:
   for line in f:
        [nkey1,nkey2,namount]=line.split()
        if nkey1==key1 and nkey2==key2:
                amount=namount
        else:
                print '%s\t%s\t%s' % (key1,key2,amount)
                key1=nkey1
                key2=nkey2
                amount=namount
   print '%s\t%s\t%s' % (key1,key2,amount)

関連情報