Python 按列排序,只保留第一行,直到列1中的下一个值

Python 按列排序,只保留第一行,直到列1中的下一个值,python,pandas,sorting,duplicates,Python,Pandas,Sorting,Duplicates,我有一个大约10万行的文件。每一行很可能都是唯一的,但我将按第1列、第2列和第3列对文件进行排序 Column 1 = CODE Column 2 = DATE Column 3 = AMOUNT 我只想把第一行保留到下一个日期等等。下面是我所拥有的以及我需要输出的示例 Original: COL1 COL2 COL3 ABA 2019-01-01 100 ABA 2019-01-01 111 ABA 2019-01-02 14

我有一个大约10万行的文件。每一行很可能都是唯一的,但我将按第1列、第2列和第3列对文件进行排序

Column 1 = CODE
Column 2 = DATE
Column 3 = AMOUNT
我只想把第一行保留到下一个日期等等。下面是我所拥有的以及我需要输出的示例

Original:  
COL1   COL2         COL3  
ABA    2019-01-01   100  
ABA    2019-01-01   111  
ABA    2019-01-02   140  
ABA    2019-01-02   150  
ABA    2019-01-03   200  
ABA    2019-01-03   220  

Ouptut needed:  
COL1   COL2         COL3  
ABA    2019-01-01   100  
ABA    2019-01-02   140  
ABA    2019-01-03   200  
任何能帮助我的人。试过


a.drop\u重复项(子集[data.columns[0],data.columns[1],data.columns[2]],keep='first')
尝试groupby,然后首先:

a.groupby([data.columns[0],data.columns[1]], as_index=False).first()

你的解决方案几乎是正确的。此版本是一个修改版本:

>> a.drop_duplicates(subset = [a.columns[0],a.columns[1]], keep='first')
这将产生:

    COL1    COL2        COL3
0   ABA     2019-01-01  100
2   ABA     2019-01-02  140
4   ABA     2019-01-03  200
解释修改:

  • subset是一个命名参数,如您在的文档中所看到的
  • 如果第3列可以更改,则它不应出现在subset参数上。复制品应考虑前2列;<李>
  • 您在代码中使用的名称不一致,为显然相同的对象命名a和数据
    什么是
    a
    ?你的尝试有什么问题?