快速解决
在进行 Pandas 测验 时,最常用的方法是使用 pandas.DataFrame 和 pandas.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 文件 |
详细说明
数据维度与结构
shape 和 info() 是查看数据集基本信息的两个常用方法。在 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() 实现时间聚合或滑动窗口分析。