学习Pandas:Python数据分析的利器

liftword3周前 (04-08)技术文章3

一、什么是Pandas?

Pandas是Python中用于数据分析和处理的核心库,提供了高效的数据结构和数据分析工具。它由Wes McKinney于2008年开发,名字来源于“Panel Data”(面板数据)和“Python Data Analysis”。Pandas擅长处理表格型数据(如Excel、CSV文件),是数据清洗、探索性分析的必备工具。

为什么使用Pandas?

  • 高效:底层基于NumPy,速度远超纯Python代码。
  • 易用:丰富的API和直观的语法。
  • 灵活:支持多种数据格式(CSV、Excel、SQL、JSON等)。
  • 生态友好:与NumPy、Matplotlib、Scikit-learn等库无缝衔接。

二、安装与导入

安装

pip install pandas

#使用清华大学的镜像,推荐国内用户使用
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

导入

import pandas as pd  # 常用别名为pd

三、核心概念

1. 数据结构

Pandas主要有两种数据结构:SeriesDataFrame

(1)Series

一维带标签的数组,类似列表,但支持更复杂的数据操作。

# 创建Series
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s)
# 输出:
# a    10
# b    20
# c    30
# dtype: int64

(2)DataFrame

二维表格型数据结构,由多列组成。

# 创建DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)
# 输出:
#      Name  Age
# 0   Alice   25
# 1     Bob   30
# 2 Charlie   35

2. 关键属性

  • 索引(index):行标签,类似Excel的行号。
  • 列(columns):列名,类似Excel的列标题。
  • 值(values):返回NumPy数组形式的数据。

四、常用操作

1. 数据读写

读取数据

# 读取CSV文件
df = pd.read_csv('data.csv')

# 读取Excel文件
df = pd.read_excel('data.xlsx')

写入数据

# 保存为CSV
df.to_csv('output.csv', index=False)

# 保存为Excel
df.to_excel('output.xlsx', sheet_name='Sheet1', index=False)

2. 数据查看

查看前几行/后几行

print(df.head(2))  # 显示前2行
print(df.tail(3))  # 显示后3行

查看数据信息

print(df.info())    # 显示数据类型、非空值等
print(df.describe()) # 显示数值列的统计信息(均值、标准差等)

3. 数据选择

按列选择

# 单列
ages = df['Age']

# 多列
subset = df[['Name', 'Age']]

按行选择

# 前3行
first_three = df[:3]

# 使用loc(按标签)和iloc(按位置)
row_0 = df.loc[0]        # 第0行
rows_0_2 = df.iloc[0:3]  # 前3行(索引0到2)

4. 数据清洗

处理缺失值

# 删除包含缺失值的行
cleaned_df = df.dropna()

# 填充缺失值
df['Age'].fillna(0, inplace=True)  # 用0填充Age列的缺失值

去重与重命名

# 删除重复行
df.drop_duplicates(inplace=True)

# 重命名列
df.rename(columns={'Age': 'Age_Years'}, inplace=True)

5. 数据筛选

# 筛选年龄大于30的记录
adults = df[df['Age'] > 30]

# 多条件筛选(年龄>30且名字以'B'开头)
selected = df[(df['Age'] > 30) & (df['Name'].str.startswith('B'))]

6. 数据聚合

分组与聚合(GroupBy)

# 按性别分组,计算平均年龄
grouped = df.groupby('Gender')['Age'].mean()

常用聚合函数

  • sum(), mean(), count(), max(), min()

7. 数据合并

横向合并(merge)

# 合并两个DataFrame
merged = pd.merge(left_df, right_df, on='Key')

纵向合并(concat)

# 沿轴0(行)合并
combined = pd.concat([df1, df2], axis=0)

五、实战案例:分析Titanic数据

1. 加载数据

titanic = pd.read_csv('titanic.csv')

2. 数据探索

# 查看前3行
print(titanic.head(3))

# 查看统计信息
print(titanic.describe())

# 检查缺失值
print(titanic.isnull().sum())

3. 数据清洗

# 删除缺失值较多的列
titanic.drop(['Cabin'], axis=1, inplace=True)

# 填充年龄缺失值为平均值
titanic['Age'].fillna(titanic['Age'].mean(), inplace=True)

4. 分析与可视化

生存率分析

# 按性别统计生存人数
survived = titanic.groupby('Sex')['Survived'].sum()
print(survived)

# 绘制柱状图
import matplotlib.pyplot as plt
survived.plot(kind='bar')
plt.title('Survival by Gender')
plt.show()

六、高级功能

1. 时间序列处理

# 将字符串转为日期
df['Date'] = pd.to_datetime(df['Date'])

# 按月聚合
monthly_sales = df.resample('M', on='Date')['Sales'].sum()

2. 数据透视表(pivot_table)

pivot = pd.pivot_table(
    data=df,
    values='Sales',
    index='Product',
    columns='Region',
    aggfunc='sum'
)

七、总结与实践建议

重点回顾

  • 数据结构:Series和DataFrame是核心。
  • 常用操作:读写、筛选、聚合、合并。
  • 实践:从简单的数据集(如Titanic、Iris)开始练习。

练习建议

  1. 用Pandas处理一个CSV文件,完成数据清洗和基础分析。
  2. 尝试使用groupby和pivot_table进行多维度分析。
  3. 结合Matplotlib/Seaborn绘制图表。

八、常见问题解答

Q:为什么我的数据读取后索引不对?
A:使用pd.read_csv(index_col=0)指定索引列,或用df.set_index('列名')重置索引。

Q:如何快速统计某一列的唯一值?
A:用df['列名'].unique()或df['列名'].value_counts()。

Q:如何处理字符串列?
A:使用.str方法,如df['Name'].str.lower()将字符串转为小写。


通过掌握Pandas,你将能高效处理数据,为机器学习、可视化等进阶任务打下坚实基础。动手实践是关键,祝你学习顺利!

相关文章

Python数据分析基础与实战

Python 是数据分析领域的首选工具之一,因其丰富的库和易用性广受欢迎。以下是 Python 数据分析的核心内容和学习路径:1. 基础工具库NumPy核心功能:多维数组(ndarray)操作、数学运...

极简Python数据分析入门:从工具准备到建模实战全攻略!

以下是一份极简Python数据分析入门指南,帮助新手快速掌握核心技能:1. 工具准备安装必备库:推荐使用 Jupyter Notebook(交互式编程环境)进行数据分析。2. 数据加载使用 panda...

三天带你轻松学会python数据分析基础,拿走不谢

Python应用广泛,尤其在数据处理方面功能强大,这本书讲述了数据的抓取、处理、可视化。【文末领取】获取方式:...

「Python数据分析」Pandas基础,通过索引选择数据

原始数据处理过程1、通过函数,生成上图所示的原始数据集2、选择某一单元格中的值3、交换数据集中A、B列的值4、选择A列和B列,形成新的数据集处理过程1新建文件夹和Python笔记本源程序,导入pand...

小白零基础学习路线,完整的自学python数据分析的学习路线

数据分析师已经存在多年了,但是,对该职业的需求从2018年开始,对数据分析师的需求猛增,目前数据分析师的前景已然非常好!预计到2025年,「数据分析师」将成为需求最大的工作之一。由于这种现象,我们看到...

「Python数据分析」Pandas基础,按照数据标签访问和操作数据

数据标签在Pandas中,相当于数据库中的主键。简单理解的话,就是唯一标识一行数据的值,也就是数据标签这一列数据当中,不能有重复值。就如同我们每个人的身份证号码一样,是不能有重复的号码的,否则就变成假...