如何在特定條件下從文件中提取行?

如何在特定條件下從文件中提取行?

假設我有一個包含 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)

相關內容