df.drop_duplicates(subset=['A','B','C'],keep='first',inplace=True)参数说明如下:
import pandas as pd data={ 'A':[1,0,1,1], 'B':[0,2,5,0], 'C':[4,0,4,4], 'D':[1,0,1,1] } df=pd.DataFrame(data=data) print(df)输出结果:
A B C D 0 1 0 4 1 1 0 2 0 0 2 1 5 4 1 3 1 0 4 1
import pandas as pd data={ 'A':[1,0,1,1], 'B':[0,2,5,0], 'C':[4,0,4,4], 'D':[1,0,1,1] } df=pd.DataFrame(data=data) #默认保留第一次出现的重复项 df.drop_duplicates()输出结果:
A B C D 0 1 0 4 1 1 0 2 0 0 2 1 5 4 1
import pandas as pd data={ 'A':[1,0,1,1], 'B':[0,2,5,0], 'C':[4,0,4,4], 'D':[1,0,1,1] } df=pd.DataFrame(data=data) #默认保留第一次出现的重复项 df.drop_duplicates(keep=False)输出结果:
A B C D 1 0 2 0 0 2 1 5 4 1
import pandas as pd data={ 'A':[1,3,3,3], 'B':[0,1,2,0], 'C':[4,5,4,4], 'D':[3,3,3,3] } df=pd.DataFrame(data=data) #去除所有重复项,对于B列来说两个0是重复项 df.drop_duplicates(subset=['B'],keep=False) #简写,省去subset参数 #df.drop_duplicates(['B'],keep=False) print(df)输出结果:
A B C D 1 3 1 5 3 2 3 2 4 3从上述示例可以看出,删除重复项后,行标签使用的数字是原来的,并没有从 0 重新开始,那么我们应该怎么从 0 重置索引呢?Pandas 提供的 reset_index() 函数会直接使用重置后的索引。如下所示:
import pandas as pd data={ 'A':[1,3,3,3], 'B':[0,1,2,0], 'C':[4,5,4,4], 'D':[3,3,3,3] } df=pd.DataFrame(data=data) #去除所有重复项,对于B来说两个0是重复项 df=df.drop_duplicates(subset=['B'],keep=False) #重置索引,从0重新开始 df.reset_index(drop=True)输出结果:
A B C D 0 3 1 5 3 1 3 2 4 3
import numpy as np import pandas as pd df = pd.DataFrame({'Country ID':[1,1,2,12,34,23,45,34,23,12,2,3,4,1], 'Age':[12,12,15,18, 19, 25, 21, 25, 25, 18, 25,12,32,18], 'Group ID':['a','z','c','a','b','s','d','a','b','s','a','d','a','f']}) #last只保留最后一个重复项 df.drop_duplicates(['Age','Group ID'],keep='last')输出结果:
Country ID Age Group ID 0 1 12 a 1 1 12 z 2 2 15 c 3 3 18 a 4 4 19 b 5 3 25 s 6 4 21 d 8 2 25 b 9 1 18 s 10 2 25 a 11 3 12 d 12 4 32 a 13 1 18 f上述数据集中,第 7 行、第 10 行对应的列标签数据相同,我们使用参数值“last”保留最后一个重复项,也就是第 10 行数据。
本文链接:http://task.lmcjl.com/news/5010.html