Python Pandas ŌĆō 统计观察值
在数据分析和数据处理中,观察值是非常重要的一种数据类型,而 Pandas 是 Python 中广受欢迎的数据处理库,它可以让我们方便地处理和分析观察值。本文将介绍如何使用 Pandas 对观察值进行统计分析,包括数据读取、数据过滤和排序、数据分组和聚合等操作。
更多Pandas相关文章,请阅读:Pandas 教程
数据读取
在处理观察值之前,我们需要先读取数据源。Pandas 支持读取多种数据格式,包括 CSV、Excel、JSON、SQL 数据库等。这里以 CSV 文件为例:
import pandas as pd
# 读取 CSV 文件
df = pd.read_csv('data.csv')
# 输出前 10 行数据
print(df.head(10))
在读取 CSV 文件时,我们可以指定文件路径、分隔符等参数,以适应不同的数据源。此处的 df
是一个 DataFrame 对象,它是 Pandas 中常用的数据结构,可以保存表格数据,包括多列和多行。
数据过滤和排序
在获取数据后,我们需要对数据进行过滤和排序,以得到我们需要的观察值。Pandas 提供了多种过滤和排序方法,包括切片、布尔索引、条件过滤、排序等。
# 选取指定列并按值排序
df_filtered = df[['name', 'age', 'score']].sort_values(by='score', ascending=False)
# 筛选出满足条件的行
df_filtered_age = df[df['age'] > 18]
# 选取指定行并指定列
df_filtered_name = df.loc[df.index[[0, 1, 3]], ['name', 'score']]
# 输出处理结果
print(df_filtered.head(10))
print(df_filtered_age.head(10))
print(df_filtered_name.head(10))
在上述示例代码中,我们先选取了 name
、age
和 score
三列,并按照 score
列的值从高到低排序;随后使用布尔索引方法,筛选出 age
大于 18 岁的行;再通过 loc
方法选取了第 1、2、4 行以及 name
、score
两列。
数据分组和聚合
在得到需要的观察值后,我们可以将它们进行统计分析,以得到更加全面的信息。Pandas 中支持对数据进行分组和聚合,例如计算平均值、求和、计数、最大最小值等。
# 根据指定列分组并聚合数据
df_grouped = df.groupby(by=['gender', 'age']).agg({
'score': ['mean', 'sum'],
'name': 'count',
})
# 重置 DataFrame 的列名
df_grouped.columns = ['_'.join(col) for col in df_grouped.columns.values]
# 输出统计结果
print(df_grouped.head(20))
在上述示例代码中,我们将数据按照 gender
和 age
两列分组,并使用 agg
方法对每组数据进行聚合:score
列求平均值和总和,name
列求出现次数。随后我们重置 DataFrame 的列名,方便后续使用。
结论
本文简单介绍了如何使用 Pandas 对观察值进行统计分析,包括读取数据、过滤和排序、分组聚合等操作。Pandas 是 Python 中非常强大的工具之一,在数据处理和分析中有着广泛的应用,希望读者可以通过本文的介绍,更加熟练地掌握 Pandas 的使用技巧。