过滤旧DataFrame生成含唯一contentId的新数据集报错求助
问题解决方法
错误根源
你的代码报错核心是**loc索引器的调用方式错误**:pandas的loc是属性索引器,需要用方括号[]访问,而你用了圆括号(),这会被解释为函数调用,进而抛出'Series' object is not callable错误。
优化后的完整代码
另外,获取唯一contentId可以直接用pandas内置的unique()方法,比转集合再转列表更高效,还能保留原数据中ID的出现顺序:
# 获取所有唯一的contentId(更高效的方式) unique_content_ids = df2['contentId'].unique() print(unique_content_ids) print(len(unique_content_ids)) # 修正loc的调用方式,改用方括号 df2_row = df2.loc[df2['contentId'].isin(unique_content_ids)] df2_row.head()
额外简化方案
如果你只是想保留每个contentId对应的第一行数据,还可以直接用drop_duplicates()方法一步到位,代码更简洁:
df2_row = df2.drop_duplicates(subset='contentId', keep='first') df2_row.head()
内容的提问来源于stack exchange,提问作者Raushan
相关产品推荐
相关产品推荐

