我有一个数据框,其中文本为一列,其标签为另一列。 文本是重复的,带有单个标签。 我想删除这些重复项,并仅保留指定标签的记录。
示例数据框:
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
谢谢!
答案 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')