程序员的公众号:源1024,获取更多资料,无加密无套路!
最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等
获取方式: 关注公众号并回复 电子书 领取,更多内容持续奉上
根据所有列删除重复的行
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
df = DataFrame([['小班','10'],['中班','15'],['大班','20'],['大班','20']],columns=['name','num'])
print(df.drop_duplicates())
#输出
name num
0 小班 10
1 中班 15
2 大班 20
删除指定列的重复数据,使用subset参数
df1 = DataFrame([['小班','10'],['中班','15'],['大班','20'],['大班','15']],columns=['name','num'])
print(df1.drop_duplicates(subset=['num']))
print(df1.drop_duplicates(subset='num'))
#输出
name num
0 小班 10
1 中班 15
2 大班 20
name num
0 小班 10
1 中班 15
2 大班 20
删除指定列的重复数据,保留最后一次数据,使用keep
df = DataFrame([['小班','10'],['中班','15'],['大班','20'],['小班','10']],columns=['name','num'])
print(df.drop_duplicates(subset=['name','num'],keep='last'))
#输出
name num
1 中班 15
2 大班 20
3 小班 10
删除重复数据后,重新设置行索引,使用ignore_index
df = DataFrame([['小班','10'],['中班','15'],['大班','20'],['小班','10']],columns=['name','num'])
print(df.drop_duplicates(subset=['name','num'],keep='last',ignore_index=True))
#输出
name num
0 中班 15
1 大班 20
2 小班 10
直接删除原DataFrame的重复数据,使用inplace=True
df = DataFrame([['小班','10'],['中班','15'],['大班','20'],['大班','20']],columns=['name','num'])
df_2 = df.drop_duplicates(inplace=True)
print(df_2)
print(df)
#输出
None
name num
0 小班 10
1 中班 15
2 大班 20