一、使用 duplicated() 函数检测重复的行
# 导包
import numpy as np
import pandas as pd
def make_df(indexs,columns):
data = [[str(j)+str(i) for j in columns] for i in indexs]
df = pd.DataFrame(data=data,index=indexs,columns=columns)
return df
- 返回元素为布尔类型的 Series 对象
- 每个元素对应一行,如果该行不是第一次出现,则元素为 True
df = make_df([1,2,3,4],list("ABCD"))
df
# 让第一行和第二行值重复
df.loc[1] = df.loc[2]
df
# 判断是否和前面的行重复(第二行和第一行的值重复)
df.duplicated()
# 默认保留第一行
df.duplicated(keep="first")
# 保留最后一行
df.duplicated(keep="last")
# 标记所有的重复行,不保留任何一行
df.duplicated(keep=False)
# 行的值不完全一样的情况
df.loc[1,"D"] = "DDD"
df
df.duplicated()
# subset:子集,指定列的值是否重复
df.duplicated(subset=["A","B","C"])
二、使用 drop_duplicates() 函数删除重复的行
# 删除行的值完全一样的情况
df.drop_duplicates()
# 删除支持列的值一样的行
df.drop_duplicates(subset=["A","B","C"])
# keep:指定保留的行
df.drop_duplicates(subset=["A","B","C"],keep="last")
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...
