pandas agg count 详细介绍
在数据分析中,经常需要对数据集进行汇总和统计分析。pandas
是 Python 中一个强大的数据处理库,它提供了丰富的数据结构和数据分析工具。本文将详细介绍如何使用 pandas
中的 agg
函数和 count
方法来进行数据统计。
1. pandas 简介
pandas
是基于 NumPy
的一个开源数据分析库,它是专门为解决数据分析任务而创建的。pandas
引入了两种新的数据结构:DataFrame
和 Series
,其中 DataFrame
是用于处理表格数据的。
2. DataFrame 和 Series
DataFrame
是一个表格型的数据结构,它包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame
既可以作为一个整体进行操作,也可以逐行或逐列进行处理。Series
是一种类似于一维数组的对象,它由一组数据(各种 NumPy 数据类型)以及一组与之相关的数据标签(即索引)组成。
3. 使用 agg 和 count 进行数据统计
agg
是 aggregate 的缩写,该函数的主要用途是对数据进行聚合操作,可以一次性计算多个统计信息。count
方法用于统计非空值的数量。
示例代码 1:创建 DataFrame
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
'Year': [2020, 2021, 2022],
'User_Count': [100, 200, 300]
}
df = pd.DataFrame(data)
print(df)
Output:
示例代码 2:使用 count 方法统计非空值数量
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', None],
'Year': [2020, 2021, 2022],
'User_Count': [100, None, 300]
}
df = pd.DataFrame(data)
result = df.count()
print(result)
Output:
示例代码 3:使用 agg 函数进行多重统计
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
'Year': [2020, 2021, 2022],
'User_Count': [100, 200, 300]
}
df = pd.DataFrame(data)
result = df.agg({'Year': ['min', 'max'], 'User_Count': ['sum', 'mean']})
print(result)
Output:
示例代码 4:结合 groupby 和 agg 使用
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
'Year': [2020, 2021, 2022],
'User_Count': [100, 200, 300]
}
df = pd.DataFrame(data)
result = df.groupby('Year').agg({'User_Count': 'count'})
print(result)
Output:
示例代码 5:使用自定义函数进行聚合
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
'Year': [2020, 2021, 2022],
'User_Count': [100, 200, 300]
}
df = pd.DataFrame(data)
def custom_count(series):
return series.count()
result = df.agg({'User_Count': custom_count})
print(result)
Output:
示例代码 6:对特定列使用 count 方法
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
'Year': [2020, 2021, 2022],
'User_Count': [100, 200, 300]
}
df = pd.DataFrame(data)
count_result = df['User_Count'].count()
print(count_result)
Output:
示例代码 7:使用 lambda 函数进行聚合
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
'Year': [2020, 2021, 2022],
'User_Count': [100, 200, 300]
}
df = pd.DataFrame(data)
result = df.agg({'User_Count': lambda x: x.count()})
print(result)
Output:
示例代码 8:结合 filter 使用 count 方法
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
'Year': [2020, 2021, 2022],
'User_Count': [100, 200, 300]
}
df = pd.DataFrame(data)
filtered_data = df[df['Year'] > 2020]
count_result = filtered_data.count()
print(count_result)
Output:
示例代码 9:对 DataFrame 的每列使用 count 方法
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
'Year': [2020, 2021, 2022],
'User_Count': [100, 200, 300]
}
df = pd.DataFrame(data)
count_result = df.apply(pd.Series.count)
print(count_result)
Output:
示例代码 10:使用 agg 进行条件统计
import pandas as pd
data = {
'Website': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
'Year': [2020, 2021, 2022],
'User_Count': [100, 200, 300]
}
df = pd.DataFrame(data)
result = df.agg({'User_Count': lambda x: x[x > 150].count()})
print(result)
Output:
4. 总结
在本文中,我们详细介绍了如何使用 pandas
的 agg
函数和 count
方法来进行数据统计。通过多个示例代码,我们展示了如何在实际的数据分析任务中应用这些方法。希望本文能帮助读者更好地理解和使用 pandas
进行数据处理和分析。