熊猫根据选定的列删除重复项

时间:2019-03-06 01:05:11

标签: python pandas indexing duplicates

我有一个熊猫数据框,如下所示:

public interface GerritAPI {

    @GET("changes/")
    Call<List<Change>> loadChanges(@Query("q") String status);
}

但是我想保留基于A和B列的唯一行。因此,我的输出应为:(保留重复的最后一个)

Retrofit

我使用了groupby,设置了索引和子集,但没有任何效果:

我希望,如果我使用以下内容,它将起作用,但不起作用:

    Gson gson = new GsonBuilder()
            .setLenient()
            .create();

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();

    GerritAPI gerritAPI = retrofit.create(GerritAPI.class);

    Call<List<Change>> call = gerritAPI.loadChanges("status:open");
    call.enqueue(this);

但是我没有得到想要的输出,列A的所有行都具有值10。帮助将不胜感激。

我正在使用Anaconda和Pandas 23.4版。

1 个答案:

答案 0 :(得分:0)

您可能需要按所需方式对列进行排序。这样,最后一行(保留的那一行是正确的那一行)。

尝试:

df = df1.sort_values(by = ['A', 'B'}).drop_duplicates(subset=['A','B'], keep='last')

这会将最后一行保留为'A'和'B'的最大值的行