首页 > 解决方案 > 删除重复的熊猫仍然保留最后两行

问题描述

所以,我想从中删除重复项,dataframe但是,当我这样做时,它总是在这件事上保持最后两行相同id

当我在命令提示符下的 python 解释器上使用它时,我发现它很有趣,它使用相同的代码获取所有重复项!

但是,当我运行文件时python train.py,它总是保留最后两个。

文件:

        data=pd.read_csv("Employee\Employee.csv")
        data.loc[len(data)] = [Id , name, dept, shift] #input data here
        print(data)
        data=data.drop_duplicates(subset=['Id'],keep='last')
        print(data)
        fileName="Employee\Employee.csv"
        data.to_csv(fileName,index=False)

标签: pythonpandasdataframe

解决方案


我做愚蠢的事情,但问题是它有效!

只需在下面添加此代码:

        data=pd.read_csv(fileName)
        data=data.drop_duplicates(subset=['Id'],keep='last')
        data.to_csv(fileName,index=False)

所以最终的形式是这样的:

        data=pd.read_csv("Employee\Employee.csv")
        data.loc[len(data)] = [Id , name, dept, shift] #input data here
        print(data)
        data=data.drop_duplicates(subset=['Id'],keep='last')
        print(data)
        fileName="Employee\Employee.csv"
        data.to_csv(fileName,index=False)

        data=pd.read_csv(fileName)
        data=data.drop_duplicates(subset=['Id'],keep='last')
        data.to_csv(fileName,index=False)

我知道它看起来像样板代码,但如果有人知道如何做更有意义,如果你在下面发表评论,我会很高兴


推荐阅读