跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Pandas
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{NoteTA |G1=IT |G2=DataScience }} '''Pandas'''是一个开源的[[Python]]数据分析库,提供了高性能、易于使用的数据结构和数据分析工具。它特别适合处理结构化数据(如表格数据、时间序列等),是[[数据科学]]和[[机器学习]]领域中最常用的工具之一。 == 概述 == Pandas最初由Wes McKinney于2008年开发,名称来源于"panel data"(面板数据)和"Python data analysis"(Python数据分析)的组合。其主要特点包括: * 快速高效的[[DataFrame]]对象,具有默认和自定义的索引 * 用于在内存数据结构和不同文件格式之间读写数据的工具 * 智能的数据对齐和缺失数据处理 * 灵活的重塑和旋转数据集 * 基于标签的切片、花式索引和大数据集的子集化 * 可以删除或插入数据结构中的列 * 按数据分组进行聚合和转换 * 高性能的数据合并和连接 * 时间序列功能 == 核心数据结构 == Pandas有两个主要数据结构:'''Series'''和'''DataFrame'''。 === Series === Series是一维标记数组,能够保存任何数据类型(整数、字符串、浮点数、Python对象等)。轴标签统称为索引。 <syntaxhighlight lang="python"> import pandas as pd # 创建Series s = pd.Series([1, 3, 5, 7, 9]) print(s) </syntaxhighlight> 输出: <pre> 0 1 1 3 2 5 3 7 4 9 dtype: int64 </pre> === DataFrame === DataFrame是一个二维标记数据结构,具有可能不同类型的列。可以将其视为电子表格或SQL表,或Series对象的字典。 <syntaxhighlight lang="python"> # 创建DataFrame data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Paris', 'London']} df = pd.DataFrame(data) print(df) </syntaxhighlight> 输出: <pre> Name Age City 0 Alice 25 New York 1 Bob 30 Paris 2 Charlie 35 London </pre> == 主要功能 == === 数据读取与写入 === Pandas支持多种文件格式的读写操作: <syntaxhighlight lang="python"> # 读取CSV文件 df = pd.read_csv('data.csv') # 写入CSV文件 df.to_csv('output.csv', index=False) # 读取Excel文件 df = pd.read_excel('data.xlsx') # 读取JSON数据 df = pd.read_json('data.json') </syntaxhighlight> === 数据清洗 === Pandas提供了丰富的数据清洗功能: <syntaxhighlight lang="python"> # 处理缺失值 df.fillna(0) # 用0填充缺失值 df.dropna() # 删除包含缺失值的行 # 删除重复值 df.drop_duplicates() # 数据类型转换 df['Age'] = df['Age'].astype('float') </syntaxhighlight> === 数据筛选与排序 === <syntaxhighlight lang="python"> # 条件筛选 df[df['Age'] > 30] # 多条件筛选 df[(df['Age'] > 25) & (df['City'] == 'Paris')] # 排序 df.sort_values(by='Age', ascending=False) </syntaxhighlight> === 数据聚合与分组 === <syntaxhighlight lang="python"> # 基本统计 df.describe() # 分组聚合 df.groupby('City')['Age'].mean() # 透视表 pd.pivot_table(df, values='Age', index='City', columns='Name') </syntaxhighlight> == 时间序列处理 == Pandas具有强大的时间序列处理能力: <syntaxhighlight lang="python"> # 创建时间序列 date_rng = pd.date_range(start='1/1/2020', end='1/08/2020', freq='D') # 作为索引 ts = pd.Series(range(len(date_rng)), index=date_rng) # 重采样 ts.resample('W').mean() </syntaxhighlight> == 可视化 == Pandas集成了[[Matplotlib]],可以直接进行数据可视化: <syntaxhighlight lang="python"> import matplotlib.pyplot as plt # 简单绘图 df.plot(x='Name', y='Age', kind='bar') plt.show() </syntaxhighlight> == 性能优化 == 对于大型数据集,可以考虑以下优化方法: * 使用适当的数据类型(如category类型用于分类变量) * 使用`eval()`和`query()`进行表达式求值 * 使用`chunksize`参数分块读取大文件 * 考虑使用[[Dask]]或[[Modin]]等扩展库处理超大数据集 == 实际应用案例 == === 销售数据分析 === <syntaxhighlight lang="python"> # 读取销售数据 sales = pd.read_csv('sales_data.csv') # 计算每月销售额 sales['Date'] = pd.to_datetime(sales['Date']) monthly_sales = sales.groupby(sales['Date'].dt.to_period('M'))['Amount'].sum() # 可视化 monthly_sales.plot(kind='bar', title='Monthly Sales') plt.show() </syntaxhighlight> === 网站用户行为分析 === <syntaxhighlight lang="python"> # 读取日志数据 logs = pd.read_json('user_logs.json', lines=True) # 计算页面访问统计 page_stats = logs['page'].value_counts().head(10) # 计算用户留存率 first_visit = logs.groupby('user_id')['timestamp'].min().reset_index() retention = pd.merge(logs, first_visit, on='user_id', suffixes=('', '_first')) retention['is_new'] = retention['timestamp'] == retention['timestamp_first'] daily_retention = retention.groupby(retention['timestamp'].dt.date)['is_new'].mean() </syntaxhighlight> == 与其他工具的集成 == Pandas可以与Python生态系统中的许多其他工具良好集成: * 与[[NumPy]]无缝协作,共享内存数据 * 与[[Matplotlib]]和[[Seaborn]]集成进行数据可视化 * 与[[Scikit-learn]]集成进行机器学习 * 与[[SQLAlchemy]]集成进行数据库操作 * 与[[PySpark]]集成处理大数据 == 学习资源 == * 官方文档: [https://pandas.pydata.org/ pandas.pydata.org] * 《Python for Data Analysis》 by Wes McKinney * Pandas Cookbook by Theodore Petrou * 10 Minutes to Pandas (官方快速入门教程) == 参见 == * [[NumPy]] * [[Matplotlib]] * [[Scikit-learn]] * [[数据科学]] * [[机器学习]] [[Category:Python库]] [[Category:数据分析]] [[Category:数据科学工具]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:NoteTA
(
编辑
)
模块:Crc32lua
(
编辑
)
模块:NoteTA
(
编辑
)
模块:WikitextLC
(
编辑
)