在数据框中删除带有条件的重复项

时间:2019-07-12 02:11:34

标签: python pandas dataframe

我有一个数据框,其中文本为一列,其标签为另一列。 文本是重复的,带有单个标签。 我想删除这些重复项,并仅保留指定标签的记录。

示例数据框:

                 text label
0          great view     a
1          great view     b
2        good balcony     a
3        nice service     a
4        nice service     b
5        nice service     c
6           bad rooms     f
7     nice restaurant     a
8     nice restaurant     d
9   nice beach nearby     x
10        good casino     z

现在,如果我想将文本保留在标签a所在的位置,并仅删除重复项。 样本输出:

          text label
0         great view     a
1       good balcony     a
2       nice service     a
3          bad rooms     f
4    nice restaurant     a
5  nice beach nearby     x
6        good casino     z

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在sort_values之前简单尝试drop_duplicates,因为df首先由label按alpha beta的顺序排序(a> b产生True)

df=df.sort_values('label').drop_duplicates('text')

df=df.sort_values('label').groupby('text').head(1)

更新

Valuetokeep='a'

df=df.iloc[(df.label!=Valuetokeep).argsort()].drop_duplicates('text')