【问题标题】:Removing duplicates with a condition in data frame使用数据框中的条件删除重复项
【发布时间】:2019-07-12 11:02:04
【问题描述】:

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

示例数据框:

                 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

提前致谢!

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您可以在drop_duplicates 之前简单地尝试sort_values,因为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')
    

    【讨论】:

    • 感谢您的回复。仅当我想将标签“a”保留为我选择的标签时,这才有帮助。但是,如果我选择标签“b”并想要删除与标签“a”关联的重复项,则它不起作用。
    猜你喜欢
    • 1970-01-01
    • 2017-05-25
    • 2018-11-09
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 2019-05-12
    • 2018-06-15
    相关资源
    最近更新 更多