天天看點

dataframe drop_Python list、dataframe去重

dataframe drop_Python list、dataframe去重
一、list去重
# 去重
lst = [1, 2, 3, 2, 3, 4]
# 第一種  集合可以去重  先轉換成集合再轉換成清單
print("方法一:", list(set(lst)))

# 第二種
lst.sort()
del_lst = []
for i in range(len(lst) - 1):
    if lst[i] == lst[i + 1]:
        del_lst.append(lst[i + 1])
for j in del_lst:
    lst.remove(j)
print("方法二:", lst)

# 第三種
new_lst = []
for k in lst:
    if k not in new_lst:
        new_lst.append(k)
print("方法三:", new_lst)

# 第四種
# fromkeys 是把所有的鍵都賦同樣的值(如果不指定内容則預設指派為None)
lst1 = []
dct = dict.fromkeys(lst)
print(dct)
for n in dct:
    lst1.append(n)
print("方法四:", lst1)
           
二、dataframe去重 (1)單元格與單元格間重複值去重
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

subset : column label or sequence of labels, optional 
用來指定特定的列,預設所有列
keep : {‘first’, ‘last’, False}, default ‘first’ 
删除重複項并保留第一次出現的項
inplace : boolean, default False 
是直接在原來資料上修改還是保留一個副本
           
(2)某個單元格中的重複值去重
df3['互碰關系_去重']=df3['互碰關系'].apply(lambda x: list(set(x)))

去重前'互碰關系'列某個單元格的值:
[鄂EH7M03, 鄂EZ193P, 鄂EZ193P, 鄂EZ193P, 鄂EZ193P, ... 
去重後'互碰關系'列某個單元格的值,結果展現在'互碰關系_去重'列:
[鄂EH7M03, 鄂EZ193P] 
           

繼續閱讀