【目录】
1. df.drop_duplicates()语法
2. 创建一个df对象
3. df.drop_duplicates()用法
【正文】
学习时间:20分钟。
1. df.drop_duplicates()语法
drop[drɒp]:卸载。
duplicates[ˈdju:plikits]:重复。
【作用】
df.drop_duplicates()
的作用是从 DataFrame 中删除重复的行。
【语法】
df.drop_duplicates(subset=None, keep='first', inplace=False)
df
表示一个具体的DataFrame对象。
.
英文小圆点。
drop_duplicates
是方法名,作用是删除DataFrame对象中的重复行。
【参数】
subset[ˈsʌbset]:子集。
keep[kiːp]:占有,保留。
subset(可选)
:指定列名或列名列表,用于检查是否存在重复项。默认值为None,表示检查所有列。
keep(可选)
:指定保留重复项的方式。默认为 first
,表示保留第一个出现的行,其他重复行会被删除;last
表示保留最后一个出现的行,其他重复行会被删除。
inplace可选
:表示是否在原地修改 DataFrame,默认为 False,即创建一个新的 DataFrame 返回。
【返回值】
inplace=False
,返回一个新的 DataFrame 对象。
inplace=True
,则不返回任何值,直接在原 DataFrame 上进行修改。
2. 创建一个df对象
【代码示例】
# 导入pandas库并简写为pd
import pandas as pd
# 要传入的数据类型为字典
# 字典的3个键姓名、年龄、成绩是DataFrame对象的列索引
# 字典的值是DataFrame对象的数据
data = {
'姓名': ['李四', '王五', '王五'],
'年龄': [ 19, 20, 20, ],
'成绩': [ 92, 100, 100]
}
# 实例化类创建对象:对象名 = 类名()
# df是对象名,DataFrame是类名
df = pd.DataFrame(data)
# 输出DataFrame对象
print(df)
【终端输出】
姓名 年龄 成绩
0 李四 19 92
1 王五 20 100
2 王五 20 100
观察输出结果,我们发现:
索引为1行的数据和索引为2行的数据完全重复。
3. df.drop_duplicates()用法
【inplace=True,修改原df对象】
print("*****原始DataFrame*****")
print(df)
# inplace=True,则不返回任何值,直接在原 DataFrame 上进行修改
df.drop_duplicates(inplace=True)
print("*****去重后的DataFrame*****")
print(df)
【终端输出】
*****原始DataFrame*****
姓名 年龄 成绩
0 李四 19 92
1 王五 20 100
2 王五 20 100
*****去重后的DataFrame*****
姓名 年龄 成绩
0 李四 19 92
1 王五 20 100
【inplace=False,返回新的一个df对象】
# 导入pandas库并简写为pd
import pandas as pd
# 要传入的数据类型为字典
# 字典的3个键姓名、年龄、成绩是DataFrame对象的列索引
# 字典的值是DataFrame对象的数据
data = {
'姓名': ['李四', '王五', '王五'],
'年龄': [ 19, 20, 20, ],
'成绩': [ 92, 100, 100]
}
# 实例化类创建对象:对象名 = 类名()
# df是对象名,DataFrame是类名
df = pd.DataFrame(data)
# 输出DataFrame对象
#print(df)
print("*****原始DataFrame*****")
print(df)
# inplace=False,返回一个新的 DataFrame 对象
new_df = df.drop_duplicates(inplace=False)
print("*****原始的DataFrame对象并没有修改*****")
print(df)
print("*****返回一个新的DataFrame 对象*****")
print(new_df)
【终端输出】
*****原始DataFrame*****
姓名 年龄 成绩
0 李四 19 92
1 王五 20 100
2 王五 20 100
*****原始的DataFrame对象并没有修改*****
姓名 年龄 成绩
0 李四 19 92
1 王五 20 100
2 王五 20 100
*****返回一个新的DataFrame 对象*****
姓名 年龄 成绩
0 李四 19 92
1 王五 20 100