Python Pandas完全指南:从入门到精通的数据处理技巧
本文最后更新于68 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

Python中Pandas用法详解:数据处理与分析利器

什么是Pandas?

Pandas是Python中一个强大的开源数据分析和处理库,它提供了高性能、易用的数据结构和数据分析工具。Pandas的名字来源于”Panel Data”(面板数据)和”Python Data Analysis”(Python数据分析)的组合。

Pandas的核心数据结构

1. Series

Series是Pandas中最基本的一维数据结构,类似于带标签的数组:

import pandas as pd

# 创建一个Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

2. DataFrame

DataFrame是Pandas中最常用的二维表格型数据结构,可以看作是由多个Series组成的字典:

# 创建一个DataFrame
data = {
    '姓名': ['张三', '李四', '王五'],
    '年龄': [25, 30, 35],
    '城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)
print(df)

Pandas常用操作

1. 数据读取与写入

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

# 写入到CSV文件
df.to_csv('output.csv', index=False)

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

# 写入到Excel文件
df.to_excel('output.xlsx', index=False)

2. 数据查看与基本信息

# 查看前5行数据
df.head()

# 查看后5行数据
df.tail()

# 查看数据基本信息
df.info()

# 查看统计摘要
df.describe()

# 查看列名
df.columns

# 查看索引
df.index

3. 数据选择与过滤

# 选择单列
df['姓名']

# 选择多列
df[['姓名', '年龄']]

# 按位置选择行
df.iloc[0]      # 第一行
df.iloc[1:3]    # 第二到第三行

# 按标签选择行
df.loc[0]       # 索引为0的行

# 条件筛选
df[df['年龄'] > 30]

4. 数据处理

# 添加新列
df['工资'] = [5000, 6000, 7000]

# 删除列
df.drop('城市', axis=1, inplace=True)

# 重命名列
df.rename(columns={'姓名': 'name', '年龄': 'age'}, inplace=True)

# 处理缺失值
df.fillna(0)        # 用0填充缺失值
df.dropna()         # 删除包含缺失值的行

# 排序数据
df.sort_values('年龄', ascending=False)

# 分组聚合
df.groupby('城市')['年龄'].mean()

5. 数据合并与连接

# 合并两个DataFrame
pd.concat([df1, df2])

# SQL风格的连接操作
pd.merge(df1, df2, on='key')

Pandas高级功能

1. 时间序列处理

# 创建时间序列索引
dates = pd.date_range('20230101', periods=6)
ts = pd.Series(np.random.randn(6), index=dates)

# 重采样时间序列数据
ts.resample('M').mean()

2. DataFrame可视化

import matplotlib.pyplot as plt

# 简单的折线图
df.plot()
plt.show()

# 柱状图
df.plot.bar()
plt.show()

3. Pandas性能优化技巧

# 使用向量化操作代替循环运算
df['新列'] = df['列1'] + df['列2']

# 使用apply函数进行复杂操作
df['新列'] = df['列'].apply(lambda x: x*2 if x >0 else x)

# 使用eval()进行表达式计算(大数据集时更高效)
pd.eval('df1 + df2')

Pandas实际应用案例

CSV数据分析示例

# 读取CSV文件并分析销售数据
sales = pd.read_csv('sales.csv')

# 计算每个产品的总销售额
product_sales = sales.groupby('产品')['销售额'].sum().sort_values(ascending=False)

# 计算每个月的销售趋势
sales['日期'] = pd.to_datetime(sales['日期'])
monthly_sales = sales.set_index('日期').resample('M')['销售额'].sum()

# 可视化结果
product_sales.plot(kind='bar')
monthly_sales.plot(title='月度销售趋势')
plt.show()

Pandas学习资源推荐

  1. Pandas官方文档
  2. 《Python for Data Analysis》 – Wes McKinney(Pandas创始人)
  3. DataCamp和Coursera上的Pandas课程
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇