郴州网站制作公司有哪些,网站后台怎么制作,网站开发 在线数据库,高质量的常州网站建设#x1f388;个人主页#xff1a;豌豆射手^ #x1f389;欢迎 #x1f44d;点赞✍评论⭐收藏 #x1f917;收录专栏#xff1a;机器学习 #x1f91d;希望本文对您有所裨益#xff0c;如有不足之处#xff0c;欢迎在评论区提出指正#xff0c;让我们共同学习、交流进… 个人主页豌豆射手^ 欢迎 点赞✍评论⭐收藏 收录专栏机器学习 希望本文对您有所裨益如有不足之处欢迎在评论区提出指正让我们共同学习、交流进步 【机器学习】数据清洗 ——基于Pandas库的方法删除重复点 一 drop_duplicates() 介绍二 删除重复行三 指定删除重复点时的列四 保留第一个或最后一个出现的重复点五 原地修改DataFrame六 总结 引言 在机器学习领域高质量的数据是构建强大模型的基石。而数据清洗作为数据预处理的关键步骤之一对于确保数据质量至关重要。 本博客将重点介绍基于Pandas库的强大功能特别是drop_duplicates()方法来处理数据中的重复点。通过深入了解这一方法及其不同应用场景读者将能够更有效地进行数据清洗为机器学习任务打下坚实的基础。 一 drop_duplicates() 介绍
drop_duplicates() 方法是 Pandas 库中用于删除 DataFrame 中重复数据的方法。 它返回一个新的 DataFrame其中不包含重复的行或列。 这个方法有几个重要的参数 subset指定要用来判断重复的列或列的组合。默认为 None表示考虑整个 DataFrame 的所有列。 keep指定保留重复值的方式。可以是 ‘first’默认值保留第一个出现的重复值、‘last’保留最后一个出现的重复值或 False删除所有重复值。 inplace指定是否在原 DataFrame 上直接进行修改而不是返回一个新的 DataFrame。默认为 False。 二 删除重复行
Pandas提供了drop_duplicates()方法可以用于删除DataFrame中的重复行。 这个方法会返回一个新的DataFrame其中不包含重复的行。 示例
import pandas as pd# 假设df是一个包含重复点的DataFrame
df pd.DataFrame({A: [1, 2, 2, 3, 3],B: [a, b, b, c, c]})# 使用drop_duplicates()方法删除重复行
df_unique df.drop_duplicates()print(df_unique)输出 A B
0 1 a
1 2 b
3 3 c在上面的例子中原始DataFrame df 包含重复的行经过drop_duplicates()方法处理后返回了一个新的DataFrame df_unique其中不包含重复的行。
三 指定删除重复点时的列
drop_duplicates()方法还可以接受subset参数用于指定删除重复点时的列。 默认情况下该方法会考虑所有的列但你也可以通过subset参数指定特定的列进行重复点的判断。 示例
import pandas as pd# 创建一个包含重复点的DataFrame
# 注意列A中有重复值但列B中的值是不同的
df pd.DataFrame({A: [1, 1, 2, 2, 3],B: [a, b, c, d, e]
})print(原始DataFrame:)
print(df)# 使用drop_duplicates()方法并指定subset参数为列A
# 这意味着只会基于列A的值来判断和删除重复点
df_c df.drop_duplicates(subset[A])print(\n基于列处理后的DataFrame:)
print(df_c)#使用drop_duplicates()方法不指定subset参数为列A
df_r df.drop_duplicates()
print(\n基于行处理后的DataFrame:)
print(df_r)
输出
原始DataFrame:A B
0 1 a
1 1 b
2 2 c
3 2 d
4 3 e基于列处理后的DataFrame:A B
0 1 a
2 2 c
4 3 e基于行处理后的DataFrame:A B
0 1 a
1 1 b
2 2 c
3 2 d
4 3 e
代码分析 以上代码首先创建了一个包含重复数据的 DataFrame其中列 A 中有重复值但列 B 中的值是不同的。 接着使用 drop_duplicates() 方法并指定 subset 参数为列 A这意味着只会基于列 A的值来判断和删除重复的数据点。 处理后的 DataFrame df_c 中只保留了列 A 中的唯一值并保留了每个唯一值对应的第一个出现的行。 然后代码使用 drop_duplicates() 方法没有指定 subset 参数这意味着将考虑整个 DataFrame 的所有列进行去重。 因为B列全是不同的数据故DataFrame 并没有发生变化。 四 保留第一个或最后一个出现的重复点
drop_duplicates()方法默认保留第一个出现的重复点但你也可以通过keep参数指定保留最后一个出现的重复点或者将所有重复点都删除。
示例
import pandas as pd# 创建一个包含重复点的DataFrame
df pd.DataFrame({A: [1, 1, 2, 2, 3, 3],B: [a, b, c, d, e, f]
})print(原始DataFrame:)
print(df)# 保留第一个出现的重复点
df_first df.drop_duplicates(subset[A],keepfirst)print(\n保留第一个出现的重复点处理后的DataFrame:)
print(df_first)# 保留最后一个出现的重复点
df_last df.drop_duplicates(subset[A],keeplast)print(\n保留最后一个出现的重复点处理后的DataFrame:)
print(df_last)运行结果
原始DataFrame:A B
0 1 a
1 1 b
2 2 c
3 2 d
4 3 e
5 3 f保留第一个出现的重复点处理后的DataFrame:A B
0 1 a
2 2 c
4 3 e保留最后一个出现的重复点处理后的DataFrame:A B
1 1 b
3 2 d
5 3 f代码分析 以上代码首先创建了一个包含重复数据的 DataFrame其中列 A 中有重复值但列 B 中的值是不同的并且相同列A对应的B元素是不一样的。 接着使用 drop_duplicates() 方法并指定 subset 参数为列 A同时设置 keep 参数为 ‘first’这意味着保留每个重复值中的第一个出现的数据点。 处理后的 DataFrame df_first 中只保留了列 A 中的唯一值并保留了每个唯一值对应的第一个出现的行。 然后再次使用 drop_duplicates() 方法指定 subset 参数为列 A但这次设置 keep 参数为’last’这意味着保留每个重复值中的最后一个出现的数据点。 处理后的 DataFrame df_last 中只保留了列 A 中的唯一值并保留了每个唯一值对应的最后一个出现的行。 从代码结果可以看出因为相同列A对应的B元素是不一样的所以这两种方式删除重复点后的结果也是不一样 总体而言这段代码演示了通过 drop_duplicates() 方法结合 subset 和 keep 参数来实现不同的去重策略分别保留第一个和最后一个出现的重复点从而得到两个不同的处理后的 DataFrame。 五 原地修改DataFrame
默认情况下drop_duplicates()方法返回一个新的DataFrame而不改变原始DataFrame。 但你也可以通过inplace参数将修改应用到原始DataFrame上。 示例
import pandas as pd# 创建一个包含重复数据的 DataFrame
data {A: [1, 1, 2, 2, 3],B: [a, b, c, c, d]
}
df pd.DataFrame(data)# 显示原始 DataFrame
print(原始 DataFrame:)
print(df)# 删除重复点并显示修改后的结果
df.drop_duplicates(inplaceTrue)
print(\n删除重复点后的 原始DataFrame:)
print(df)运行结果
原始 DataFrame:A B
0 1 a
1 1 b
2 2 c
3 2 c
4 3 d删除重复点后的 原始DataFrame:A B
0 1 a
1 1 b
2 2 c
4 3 d
在这个例子中通过inplaceTrue参数我们在原地修改了DataFrame不再返回新的DataFrame同时原始DataFrame也发生了改变,变为了删除重复值的样子。
将inplace参数改为False,我们会发现输出结果中原始dataframe并没有发生改变如
import pandas as pd# 创建一个包含重复数据的 DataFrame
data {A: [1, 1, 2, 2, 3],B: [a, b, c, c, d]
}
df pd.DataFrame(data)# 显示原始 DataFrame
print(原始 DataFrame:)
print(df)# 删除重复点并显示修改后的结果
df.drop_duplicates(inplaceFalse)
print(\n删除重复点后的 原始DataFrame:)
print(df)
输出结果
原始 DataFrame:A B
0 1 a
1 1 b
2 2 c
3 2 c
4 3 d删除重复点后的 原始DataFrame:A B
0 1 a
1 1 b
2 2 c
3 2 c
4 3 d六 总结
在本博客中我们深入探讨了机器学习中数据清洗的关键任务之一——删除重复点的方法重点介绍了基于Pandas库的drop_duplicates()方法。
我们详细讨论了如何使用这一方法删除数据中的重复行以及在多列情况下如何指定删除重复点的列强调了方法的灵活性。
同时我们解释了通过keep参数选择保留第一个或最后一个出现的重复点的策略并提及了在处理大型数据集时需要注意的内存效率问题。
通过掌握这一技能读者将能够更加轻松、灵活和高效地进行数据清洗确保所使用的数据是准确、可靠且高质量的为机器学习任务的成功打下坚实的基础。 这篇文章到这里就结束了 谢谢大家的阅读 如果觉得这篇博客对你有用的话别忘记三连哦。 我是甜美的江让我们我们下次再见