本文主要是介绍Pandas数据清洗之数据分组和删除重复数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数据分组
在Pandas中,你可以使用groupby()
函数对DataFrame进行分组。这是一个非常强大的功能,可以基于一个或多个列的值来聚合数据。
这里是一个简单的例子来说明如何使用groupby()
:
-
导入Pandas库:
import pandas as pd
-
创建一个示例DataFrame:
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],'C': [1, 2, 3, 4, 5, 6, 7, 8],'D': [10, 20, 30, 40, 50, 60, 70, 80] } df = pd.DataFrame(data)
-
使用
groupby()
函数进行分组:grouped = df.groupby('A')
-
应用聚合函数:
- 要计算每个组中
C
列的总和:sum_grouped = grouped['C'].sum()
- 要计算每个组中
C
列的平均值:mean_grouped = grouped['C'].mean()
- 要计算每个组中
如果你想要基于多列进行分组,只需将列名放在一个列表里即可:
grouped_multi = df.groupby(['A', 'B'])
你可以根据需要选择不同的聚合函数,例如sum()
, mean()
, count()
, min()
, max()
等。
删除重复数据
在Pandas中,删除DataFrame中的重复行可以通过drop_duplicates()
方法来实现。这个方法提供了很多选项来定制你如何处理重复的数据。
以下是一些基本用法:
示例代码:
-
导入Pandas库:
import pandas as pd
-
创建一个示例DataFrame:
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],'C': [1, 2, 3, 4, 5, 6, 7, 8],'D': [10, 20, 30, 40, 50, 60, 70, 80] } df = pd.DataFrame(data)
-
删除重复行:
-
删除所有列都相同的行:
df_unique = df.drop_duplicates()
-
只考虑特定列进行去重:
df_unique = df.drop_duplicates(subset=['A', 'B'])
-
保留最后一次出现的重复行:
df_unique = df.drop_duplicates(keep='last')
-
不保留任何重复行(即删除所有重复行):
df_unique = df.drop_duplicates(keep=False)
-
-
查看结果:
print(df_unique)
参数解释:
subset=None
: 指定要检查哪些列是否存在重复项。默认为None
,表示检查所有列。keep='first'
: 指定保留哪个版本的重复项。默认为'first'
,表示保留第一次出现的重复项;也可以设置为'last'
以保留最后一次出现的重复项;如果设置为False
,则删除所有重复项。inplace=False
: 如果设置为True
,则直接在原DataFrame上修改并返回None
。如果设置为False
(默认),则返回一个新的DataFrame。
这篇关于Pandas数据清洗之数据分组和删除重复数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!