You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除DataFrame中User与Location列重复的行?

解决Pandas中删除User和Location列同时重复行的问题

我完全懂你的困扰——处理用户评论数据时,确实需要清理掉那些同一个用户在同一地点留下的重复记录,只保留首次出现的那条对吧?这其实用Pandas的内置方法就能轻松搞定。

具体实现步骤

首先先还原你的原始数据,方便后续操作:

import pandas as pd

# 构建原始DataFrame
data = {
    'Index': [1, 2, 3, 4, 5, 6],
    'User': ['bob', 'bil', 'bob', 'juan', 'bil', 'bil'],
    'Location': [62.354, 59.511, 63.884, 58.221, 59.511, 57.422],
    'Rating': [4, 5, 3, 4, 5, 5],
    'Language': ['eng', 'span', 'ger', 'jap', 'eng', 'fra']
}
df = pd.DataFrame(data).set_index('Index')

接下来执行核心的去重操作,直接用drop_duplicates()方法就能精准解决你的需求:

# 基于User和Location的组合去重,仅保留第一次出现的行
df_cleaned = df.drop_duplicates(subset=['User', 'Location'], keep='first')

运行后得到的df_cleaned就是你想要的结果:

User  Location  Rating Language
Index                                 
1       bob    62.354       4      eng
2       bil    59.511       5     span
3       bob    63.884       3      ger
4      juan    58.221       4      jap
6       bil    57.422       5      fra

参数解释

  • subset=['User', 'Location']:明确指定只根据这两列的组合判断重复,其他列(比如Rating、Language)的差异不会影响重复判定,完全匹配你的场景。
  • keep='first':保留每组重复行里的第一行,删除后续重复的记录。如果你的需求是保留最后一条重复行,可以改成keep='last';要是想删除所有重复行(不管首次还是末次),换成keep=False就行。

这样处理后,就能彻底清理掉那些冗余的重复评论啦!

内容的提问来源于stack exchange,提问作者Juan R.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:20:43