12. df.drop_duplicates()-删除重复值

文摘   教育   2023-09-12 23:18   云南  

【目录】


  • 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 = {
    '姓名': ['李四''王五''王五'],
    '年龄': [ 192020, ],
    '成绩': [ 92100100]
}

# 实例化类创建对象:对象名 = 类名()
# 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 = {
    '姓名': ['李四''王五''王五'],
    '年龄': [ 192020, ],
    '成绩': [ 92100100]
}

# 实例化类创建对象:对象名 = 类名()
# 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


安迪python学习笔记
python学习笔记,适合初学者。
 最新文章