Pandas从零开始使用教程

Pandas从零开始使用教程


一、Pandas简介与安装

Pandas是Python的核心数据分析库,专为处理结构化数据(如表格、时间序列)设计。其核心数据结构为DataFrame(二维表)和Series(一维数组)。

安装命令

pip install pandas numpy  # 建议同时安装NumPy(数值计算基础库)

二、基础数据结构
1. Series(一维带标签数组)
import pandas as pd

# 创建Series
data = [10, 20, 30]
s = pd.Series(data, index=['a', 'b', 'c'])
print(s)

输出:

a    10  
b    20  
c    30  
dtype: int64  
2. DataFrame(二维表格)
# 创建DataFrame
data = {'姓名': ['张三', '李四', '王五'], 
        '年龄': [25, 30, 28], 
        '城市': ['北京', '上海', '广州']}
df = pd.DataFrame(data)
print(df)

输出:

   姓名  年龄  城市  
0  张三  25  北京  
1  李四  30  上海  
2  王五  28  广州  

三、数据读取与保存

支持CSV、Excel、SQL等格式:

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

# 保存为Excel
df.to_excel('output.xlsx', index=False)  # index=False表示不保存行索引

四、数据查看与筛选
1. 查看数据
df.head(2)   # 查看前2行
df.tail(3)    # 查看后3行
df.info()     # 查看数据类型和内存
df.describe() # 统计数值型列的分布(均值、标准差等)
2. 数据筛选
# 按列筛选
df['姓名']  # 选择单列
df[['姓名', '年龄']]  # 选择多列

# 按行筛选(条件过滤)
df[df['年龄'] > 25]          # 年龄大于25的行
df[(df['城市']=='北京') | (df['年龄']<30)]  # 多条件组合

五、数据处理
1. 处理缺失值
# 检测缺失值
df.isnull().sum()

# 填充缺失值
df['年龄'].fillna(df['年龄'].mean(), inplace=True)  # 用均值填充
df.dropna(subset=['城市'], inplace=True)  # 删除“城市”列为空的行
2. 类型转换
df['年龄'] = df['年龄'].astype(float)  # 整数转浮点数
df['入职日期'] = pd.to_datetime(df['入职日期'])  # 字符串转日期
3. 添加/删除列
# 添加列
df['是否青年'] = df['年龄'] < 30

# 删除列
df.drop(columns=['城市'], inplace=True)

六、数据分组与聚合
# 按城市分组,计算平均年龄
grouped = df.groupby('城市')['年龄'].mean()
print(grouped)

# 多级聚合(同时计算均值和最大值)
result = df.groupby('城市').agg({'年龄': ['mean', 'max'], '薪资': 'sum'})

七、数据合并
# 创建第二个DataFrame
df2 = pd.DataFrame({'姓名': ['张三', '赵六'], '薪资': [15000, 20000]})

# 按姓名合并(类似SQL JOIN)
merged_df = pd.merge(df, df2, on='姓名', how='left')  # 左连接

八、时间序列处理
# 创建时间序列数据
date_rng = pd.date_range(start='2023-01-01', end='2023-01-10', freq='D')
ts = pd.Series(range(len(date_rng)), index=date_rng)

# 按周重采样
weekly = ts.resample('W').mean()  # 计算每周均值

九、实战案例:销售数据分析
# 1. 读取数据
sales = pd.read_csv('sales_data.csv')

# 2. 清洗数据
sales.dropna(subset=['销售额'], inplace=True)  # 删除销售额缺失的行
sales['日期'] = pd.to_datetime(sales['日期'])   # 日期格式化

# 3. 分析月度销售额
sales['月份'] = sales['日期'].dt.month
monthly_sales = sales.groupby('月份')['销售额'].sum()

# 4. 可视化(需安装matplotlib)
import matplotlib.pyplot as plt
monthly_sales.plot(kind='bar')
plt.title('月度销售额趋势')
plt.show()

十、进阶技巧
  1. 向量化操作:避免循环,用df.apply()替代
    df['年龄等级'] = df['年龄'].apply(lambda x: '青年' if x<30 else '中年')
    
  2. 高性能查询:对大型数据集用pd.read_csv(chunksize=5000)分块读取
  3. 内存优化:用df.astype('category')转换低基数分类列

附:学习资源推荐

  • 官方文档:pandas.pydata.org
  • 实战书籍:《Python for Data Analysis》(Wes McKinney著)

掌握以上内容,您已具备Pandas基础数据处理能力!后续可深入学习时间序列分析、机器学习整合等专题。

(SCI三维路径规划对比)25年最新五种智能算法优化解决无人机路径巡检三维路径规划对比(灰雁算法真菌算法吕佩尔狐阳光生长研究(Matlab代码实现)内容概要:本文档主要介绍了一项关于无人机三维路径巡检规划的研究,通过对比2025年最新的五种智能优化算法(包括灰雁算法、真菌算法、吕佩尔狐算法、阳光生长算法等),在复杂三维环境中优化无人机巡检路径的技术方案。所有算法均通过Matlab代码实现,并重点围绕路径安全性、效率、能耗和避障能力进行性能对比分析,旨在为无人机在实际巡检任务中的路径规划提供科学依据和技术支持。文档还展示了多个相关科研方向的案例与代码资源,涵盖路径规划、智能优化、无人机控制等多个领域。; 适合人群:具备一定Matlab编程基础,从事无人机路径规划、智能优化算法研究或自动化、控制工程方向的研究生、科研人员及工程技术人员。; 使用场景及目标:① 对比分析新型智能算法在三维复杂环境下无人机路径规划的表现差异;② 为科研项目提供可复现的算法代码与实验基准;③ 支持无人机巡检、灾害监测、电力线路巡查等实际应用场景的路径优化需求; 阅读建议:建议结合文档提供的Matlab代码进行仿真实验,重点关注不同算法在收敛速度、路径长度和避障性能方面的表现差异,同时参考文中列举的其他研究案例拓展思路,提升科研创新能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值