Pandas鸟类数据处理:提取列唯一值及首个唯一项需求
嘿,我来帮你搞定这个鸟类数据的去重问题!刚好我之前处理过类似的重复记录场景,用pandas的内置方法就能完美满足你的需求——每个学名只保留第一次出现的观测记录。
具体解决步骤
首先,你已经成功提取了目标列,接下来只需要对df2做一步去重操作就行:
# 你已经完成的列提取步骤 df2 = df[["SCIENTIFIC NAME", "OBSERVATION COUNT"]] # 核心去重代码:按学名去重,保留首个出现的记录 df_unique_birds = df2.drop_duplicates(subset="SCIENTIFIC NAME", keep="first") # 可选操作:重置索引(让结果的索引从0开始连续,更整洁) df_unique_birds = df_unique_birds.reset_index(drop=True)
代码参数解释
subset="SCIENTIFIC NAME":指定只依据这个列的值来判断是否为重复行,其他列的内容不影响去重逻辑keep="first":明确告诉pandas,当遇到同一学名的多条记录时,只保留第一次出现的那一行,其余重复行直接丢弃
验证结果(可选)
如果你想确认去重是否成功,可以用这两行代码检查:
# 检查去重后的唯一学名数量 print("去重后的唯一学名数量:", df_unique_birds["SCIENTIFIC NAME"].nunique()) # 检查去重后的总行数(应该和唯一学名数量一致) print("去重后的总行数:", len(df_unique_birds))
这样处理后,你就能得到每个鸟类学名仅出现一次的数据集,且保留的是该学名第一次出现时对应的观测数量啦~
内容的提问来源于stack exchange,提问作者Karim Abou El Naga
相关产品推荐
相关产品推荐

