Pandas 测验(深入浅出)

快速解决

在进行 Pandas 测验 时,最常用的方法是使用 pandas.DataFramepandas.Series 进行数据操作。如果你需要快速验证数据结构或计算统计信息,直接使用 .describe() 方法即可:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df.describe()

这条代码将输出 DataFrame 的统计概览,包括均值、标准差、最小最大值等,适用于 Pandas 测验 中常见的基础分析题目。

常用方法

以下是 Pandas 测验 中常用的一些方法及其用途,按使用频率排序:

方法 功能 示例
df.shape 查看数据维度 df.shape 返回行数和列数
df.info() 显示数据结构信息 df.info() 包含数据类型和非空值数量
df.head(n) 查看前 n 行数据 df.head(3) 查看前三行
df.isna().sum() 计算缺失值 df.isna().sum() 统计每列缺失数
df.groupby('列名').mean() 分组计算均值 df.groupby('Category').mean() 按分类计算平均值
df.sort_values(by='列名') 排序数据 df.sort_values(by='Sales') 按销售额排序
df['列名'].unique() 查看唯一值 df['ID'].unique() 查看 ID 的唯一值
df.to_csv('文件名') 导出数据 df.to_csv('output.csv') 保存为 CSV 文件

详细说明

数据维度与结构

shapeinfo() 是查看数据集基本信息的两个常用方法。在 Pandas 测验 中,这些方法常用于了解数据集的大小和类型:

import pandas as pd

df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Salary': [50000, 60000, 70000]
})

print(df.shape)  # 输出 (3, 3)

print(df.info())

缺失值处理

isna().sum() 常用于检测缺失数据,在 Pandas 测验 中尤其常见:

import pandas as pd

df = pd.DataFrame({
    'Product': ['A', 'B', None, 'D'],
    'Price': [10, 20, 30, None]
})

missing_values = df.isna().sum()
print(missing_values)

分组统计

groupby() 与聚合函数如 mean()sum() 等结合使用,是 Pandas 测验 中常见的数据分析方式:

import pandas as pd

df = pd.DataFrame({
    'Category': ['Fruit', 'Vegetable', 'Fruit', 'Vegetable'],
    'Sales': [100, 200, 150, 250]
})

category_mean = df.groupby('Category').mean()
print(category_mean)

高级技巧

Pandas 测验 中,可能会遇到需要多条件筛选和复杂分组的题目。例如,使用 .loc.query 进行条件过滤:

df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 28],
    'Department': ['HR', 'Finance', 'IT', 'IT']
})

result = df.loc[(df['Age'] > 30) & (df['Department'] == 'IT')]
print(result)

此外,pivot_table() 也是高级应用中非常实用的工具,适合进行多维数据汇总:

df = pd.DataFrame({
    'Category': ['Fruit', 'Fruit', 'Vegetable', 'Vegetable'],
    'Month': ['Jan', 'Feb', 'Jan', 'Feb'],
    'Sales': [100, 150, 200, 250]
})

pt = df.pivot_table(values='Sales', index='Category', columns='Month', aggfunc='sum')
print(pt)

常见问题

Q1:为什么 df.describe() 不显示所有列?
A1:默认情况下,describe() 只显示数值型列。要包含非数值列,使用 describe(include='all')

Q2:如何快速导出清洗后的数据?
A2:使用 df.to_csv('文件名'),确保数据保存前已经清洗并处理好缺失值。

Q3:groupby 后如何进行多个聚合操作?
A3:使用 .agg() 方法,传入多个函数或字典形式的聚合方式,如 df.groupby('列').agg({'列': ['mean', 'sum']})

Q4:如何处理时间序列数据?
A4:使用 pd.to_datetime() 转换列,再结合 .resample().rolling() 实现时间聚合或滑动窗口分析。