Pandas 是 Python 数据处理中最为常用的库之一,它提供了强大的数据结构和丰富的函数用于数据分析。Pandas 的核心数据结构是 Series 和 DataFrame。Series 是一个一维的带标签的数组对象,而 DataFrame 是一个二维的表格型数据结构。以下是 Pandas 中一些常用的函数和方法,帮助你在日常数据处理中得心应手。
read_csv()
: 读取 CSV 文件。to_csv()
: 将 DataFrame 写入到 CSV 文件。read_excel()
: 读取 Excel 文件。to_excel()
: 将 DataFrame 导出到 Excel 文件。read_sql()
: 读取 SQL 数据库中的数据。to_sql()
: 将 DataFrame 写入到 SQL 数据库中。read_json()
: 读取 JSON 格式的数据。to_json()
: 将 DataFrame 转换为 JSON 格式。head()
: 查看 DataFrame 的前几行。tail()
: 查看 DataFrame 的后几行。info()
: 获取 DataFrame 的基本信息,如数据类型、缺失值等。describe()
: 对数值列进行统计汇总。shape
: 查看 DataFrame 的维度。columns
: 获取 DataFrame 的列标签。index
: 返回行索引。iloc[]
: 通过行号选择数据。loc[]
: 根据标签选取数据。at[]
: 快速获取单个值。iat[]
: 按位置快速获取单个值。filter()
: 根据条件过滤数据。dropna()
: 删除缺失值。fillna()
: 用指定值填充缺失值。drop_duplicates()
: 删除重复数据。replace()
: 替换数据。astype()
: 转换数据类型。rename()
: 重命名行或列。apply()
: 对每个元素或列应用一个函数。map()
: 映射新值。groupby()
: 根据列进行分组操作。pivot_table()
: 创建数据透视表。merge()
: 合并 DataFrame。concat()
: 连接多个 DataFrame。sort_values()
: 按值排序。rank()
: 计算排名。to_datetime()
: 将日期字段转换为 datetime 类型。resample()
: 重新采样时间序列。shift()
: 移动数据。rolling()
: 滚动窗口操作。假设我们有一个 CSV 文件,内容是某公司的员工信息,包括姓名、年龄、部门、工资等,我们需要对这些数据进行基本的处理和分析。
import pandas as pd
# 读取CSV文件
df = pd.read_csv('employees.csv')
print(df.head())
# 查看DataFrame的信息
print(df.info())
# 统计汇总
print(df.describe())
# 选择“年龄”列
ages = df['age']
# 选择前两行和前三列
subset = df.iloc[:2, :3]
# 删除所有有缺失值的行
df_cleaned = df.dropna()
# 用平均值填充“工资”列的缺失值
df['salary'].fillna(df['salary'].mean(), inplace=True)
# 计算每个部门的平均工资
avg_salary = df.groupby('department')['salary'].mean()
# 增加一个新列,表示工资级别
df['salary_level'] = pd.cut(df['salary'], bins=[0, 5000, 10000, 15000], labels=['Low', 'Medium', 'High'])
虽然 Pandas 本身并没有直接的可视化功能,但它与 Matplotlib 和 Seaborn 等可视化库集成良好。
import matplotlib.pyplot as plt
# 画出不同部门的平均工资
avg_salary.plot(kind='bar')
plt.title('Average Salary by Department')
plt.xlabel('Department')
plt.ylabel('Average Salary')
plt.show()
这些函数和方法涉及 Pandas 的常用操作,帮助我们在各种数据处理场景中灵活应对。在实际应用中,根据具体需求,还可以组合这些方法以实现更复杂的数据分析任务。Pandas 的丰富功能及其与其他数据科学库的良好集成,使其成为数据科学家和分析师的强大工具。在深入学习中,实际操作和实践至关重要,多使用这些函数将会大幅提高数据处理效率。