使用 drop_duplicates (Pandas DataFrame) 时如何删除行?
How to get dropped rows when using drop_duplicates (Pandas DataFrame)?
我使用 pandas.DataFrame.drop_duplicates() 删除所有列值都相同的行的重复项,但是为了进行数据质量分析,我需要生成一个包含删除的重复行的 DataFrame。我如何确定要删除哪些行?我突然想到将原始 DF 与新的 DF 进行无重复比较,并确定缺少的唯一索引,但有没有更好的方法来做到这一点?
示例:
import pandas as pd
data =[[1,'A'],[2,'B'],[3,'C'],[1,'A'],[1,'A']]
df = pd.DataFrame(data,columns=['Numbers','Letters'])
df.drop_duplicates(keep='first',inplace=True) # This will drop rows 3 and 4
# Now how to create a dataframe with the duplicate records dropped only?
import pandas as pd
data =[[1,'A'],[2,'B'],[3,'C'],[1,'A'],[1,'A']]
df = pd.DataFrame(data,columns=['Numbers','Letters'])
df.drop_duplicates()
输出
Numbers Letters
0 1 A
1 2 B
2 3 C
和
df.loc[df.duplicated()]
输出
Numbers Letters
3 1 A
4 1 A
我使用 pandas.DataFrame.drop_duplicates() 删除所有列值都相同的行的重复项,但是为了进行数据质量分析,我需要生成一个包含删除的重复行的 DataFrame。我如何确定要删除哪些行?我突然想到将原始 DF 与新的 DF 进行无重复比较,并确定缺少的唯一索引,但有没有更好的方法来做到这一点?
示例:
import pandas as pd
data =[[1,'A'],[2,'B'],[3,'C'],[1,'A'],[1,'A']]
df = pd.DataFrame(data,columns=['Numbers','Letters'])
df.drop_duplicates(keep='first',inplace=True) # This will drop rows 3 and 4
# Now how to create a dataframe with the duplicate records dropped only?
import pandas as pd
data =[[1,'A'],[2,'B'],[3,'C'],[1,'A'],[1,'A']]
df = pd.DataFrame(data,columns=['Numbers','Letters'])
df.drop_duplicates()
输出
Numbers Letters
0 1 A
1 2 B
2 3 C
和
df.loc[df.duplicated()]
输出
Numbers Letters
3 1 A
4 1 A