Pandas与Excel的常用操作对比

Pandas 与 Excel 常用操作对比

引言

Pandas 和 Excel 都是处理和分析数据的强大工具,但它们在实现相同数据操作的方式上有显著差异。本文将详细介绍这两种工具在常用数据操作上的异同点,并通过示例来展示这些操作的实现方式。

1. 数据加载与保存
Excel
  • 加载数据 :Excel 可以直接打开各种文件格式,如 .xlsx.csv 等,也可以通过导入功能加载其他格式的数据。
    • 示例 :打开一个 .xlsx 文件。
    • 操作:选择"文件" -> "打开",选择文件路径。
  • 保存数据 :数据可以直接保存为 Excel 文件,或者另存为其他格式,如 CSV、TXT 等。
    • 示例 :将数据保存为 .csv 格式。
    • 操作:选择"文件" -> "另存为",选择保存格式为 CSV。
Pandas
  • 加载数据 :Pandas 通过 read_csv(), read_excel(), read_sql() 等函数来加载不同格式的数据。

    • 示例 :使用 read_csv() 从 CSV 文件加载数据。

    • 代码

      python 复制代码
      import pandas as pd
      df = pd.read_csv('data.csv')
  • 保存数据 :Pandas 可以通过 to_csv(), to_excel(), to_sql() 等方法将数据保存到相应的格式。

    • 示例 :使用 to_csv() 将 DataFrame 保存为 CSV 文件。

    • 代码

      python 复制代码
      df.to_csv('output.csv', index=False)
2. 数据查看与基本信息
Excel
  • 查看数据 :可以通过滚动和缩放功能浏览数据。
    • 示例:查看前几行数据。
    • 操作:滚动到文件顶部。
  • 基本信息 :使用 Excel 的"状态栏"可以看到一些基本统计信息,如行数、列数、总和等。
    • 示例:查看数据的基本统计信息。
    • 操作:观察状态栏显示的信息。
Pandas
  • 查看数据 :使用 head(), tail(), sample() 等函数查看数据的不同部分。

    • 示例:查看前五行数据。

    • 代码

      python 复制代码
      print(df.head())
  • 基本信息 :使用 info(), describe(), shape 等属性获取数据的基本统计信息和结构信息。

    • 示例:查看数据的基本统计信息。

    • 代码

      python 复制代码
      print(df.info())
      print(df.describe())
3. 数据选择与索引
Excel
  • 单元格选择 :通过点击或拖拽选择单元格或单元格区域。
    • 示例:选择 A1 到 B10 的单元格区域。
    • 操作:点击 A1,然后拖拽到 B10。
  • 条件筛选 :使用"筛选"功能按条件选择数据。
    • 示例:选择年龄大于 30 的行。
    • 操作:选择列,点击"筛选"按钮,选择条件。
Pandas
  • 索引 :使用 .loc[].iloc[] 进行基于标签或位置的选择。

    • 示例:选择前五行的第二列。

    • 代码

      python 复制代码
      print(df.iloc[:5, 1])
  • 条件筛选 :使用布尔索引或 .query() 方法按条件选择数据。

    • 示例:选择年龄大于 30 的行。

    • 代码

      python 复制代码
      print(df[df['age'] > 30])
4. 数据排序与过滤
Excel
  • 排序 :使用"排序"功能按一列或多列排序。
    • 示例:按年龄列升序排序。
    • 操作:选择年龄列,点击"排序"按钮,选择"升序"。
  • 过滤 :使用"筛选"功能显示符合条件的数据行。
    • 示例:显示年龄大于 30 的行。
    • 操作:选择年龄列,点击"筛选"按钮,设置条件。
Pandas
  • 排序 :使用 sort_values() 函数按一列或多列排序。

    • 示例:按年龄列升序排序。

    • 代码

      python 复制代码
      sorted_df = df.sort_values(by='age')
  • 过滤 :使用布尔表达式或 .query() 方法过滤数据。

    • 示例:显示年龄大于 30 的行。

    • 代码

      python 复制代码
      filtered_df = df.query('age > 30')
5. 数据清洗
Excel
  • 删除重复值 :使用"删除重复项"功能去除重复数据。
    • 示例:删除姓名列的重复值。
    • 操作:选择姓名列,点击"数据" -> "删除重复项"。
  • 替换值 :使用"查找与替换"功能修改特定值。
    • 示例:将所有的"John Doe"替换为"John Smith"。
    • 操作:使用"查找与替换"功能进行替换。
  • 缺失值处理 :手动填充或使用公式填充缺失值。
    • 示例:使用平均值填充年龄列的缺失值。
    • 操作 :使用公式 =AVERAGEIF() 计算平均值,然后手动填充。
Pandas
  • 删除重复值 :使用 drop_duplicates() 函数去除重复数据。

    • 示例:删除姓名列的重复值。

    • 代码

      python 复制代码
      df.drop_duplicates(subset='name', inplace=True)
  • 替换值 :使用 replace() 函数替换特定值。

    • 示例:将所有的"John Doe"替换为"John Smith"。

    • 代码

      python 复制代码
      df.replace('John Doe', 'John Smith', inplace=True)
  • 缺失值处理 :使用 fillna(), dropna(), interpolate() 等函数处理缺失值。

    • 示例:使用平均值填充年龄列的缺失值。

    • 代码

      python 复制代码
      df['age'].fillna(df['age'].mean(), inplace=True)
6. 数据转换
Excel
  • 公式 :使用内置公式(如 SUM(), AVERAGE(), IF() 等)进行计算。
    • 示例:计算年龄列的平均值。
    • 操作 :使用 =AVERAGE() 公式。
  • 数据透视表 :创建数据透视表进行汇总和分析。
    • 示例:按部门计算员工的平均年龄。
    • 操作:插入数据透视表,设置行标签和值字段。
Pandas
  • 公式 :使用 apply() 函数和 NumPy 函数进行计算。

    • 示例:计算年龄列的平均值。

    • 代码

      python 复制代码
      average_age = df['age'].mean()
  • 数据聚合 :使用 groupby() 函数进行分组和聚合操作。

    • 示例:按部门计算员工的平均年龄。

    • 代码

      python 复制代码
      agg_df = df.groupby('department')['age'].mean().reset_index()
  • 数据透视表 :使用 pivot_table() 函数创建数据透视表。

    • 示例:按部门计算员工的平均年龄。

    • 代码

      python 复制代码
      pivot_table = pd.pivot_table(df, values='age', index='department', aggfunc='mean')
7. 数据可视化
Excel
  • 图表 :使用 Excel 的图表工具创建各种类型的图表,如柱状图、折线图、饼图等。
    • 示例:创建年龄分布的柱状图。
    • 操作:选择数据,点击"插入" -> "图表" -> "柱状图"。
  • 交互式图表 :支持创建动态图表,如条件格式、图表工具等。
    • 示例:使用条件格式突出显示年龄大于 30 的行。
    • 操作:选择数据,点击"条件格式" -> "新建规则"。
Pandas
  • 图表 :使用 plot() 函数结合 Matplotlib 或 Seaborn 创建图表。

    • 示例:创建年龄分布的柱状图。

    • 代码

      python 复制代码
      import matplotlib.pyplot as plt
      df['age'].hist(bins=10)
      plt.show()
  • 定制化 :支持高度定制化图表,如设置标题、轴标签、图例等。

    • 示例:设置图表标题和轴标签。

    • 代码

      python 复制代码
      df['age'].hist(bins=10)
      plt.title('Age Distribution')
      plt.xlabel('Age')
      plt.ylabel('Count')
      plt.show()
8. 数据共享与协作
Excel
  • 版本控制 :通过文件的历史版本功能跟踪更改。
    • 示例:查看历史版本。
    • 操作:选择"文件" -> "信息" -> "版本历史"。
  • 多人协作 :使用 Office 365 的实时协作功能。
    • 示例:多人同时编辑文件。
    • 操作:选择"共享" -> "邀请他人"。
  • 保护工作表 :使用密码保护等功能防止未经授权的更改。
    • 示例:保护工作表不被编辑。
    • 操作:选择"审阅" -> "保护工作表"。
Pandas
  • 版本控制 :通过 Git 版本控制系统跟踪代码更改。
    • 示例:提交代码更改。
    • 操作:使用 Git 命令行工具。
  • 多人协作 :通过 GitHub 或其他版本控制系统进行协作开发。
    • 示例:推送代码到远程仓库。
    • 操作:使用 Git 命令行工具。
  • 代码复用 :通过模块化和函数封装提高代码的可重用性。
    • 示例:封装一个数据清洗函数。

    • 代码

      python 复制代码
      def clean_data(df):
          # 清洗数据的代码
          pass
9. 性能与扩展性
Excel
  • 性能 :处理大量数据时可能会出现性能问题。
    • 示例:加载一个包含数百万行的大文件。
    • 操作:可能会导致程序卡顿或崩溃。
  • 扩展性 :使用宏或 VBA 编程增加功能。
    • 示例:编写一个宏来自动执行数据清洗流程。
    • 操作:使用 VBA 编辑器编写代码。
Pandas
  • 性能 :能够高效处理大型数据集。

    • 示例:加载一个包含数百万行的大文件。

    • 代码

      python 复制代码
      df = pd.read_csv('large_dataset.csv')
  • 扩展性 :通过 Python 的强大生态扩展功能。

    • 示例:使用外部库进行高级数据处理。

    • 代码

      python 复制代码
      from sklearn.preprocessing import StandardScaler
      scaler = StandardScaler()
      df_scaled = scaler.fit_transform(df[['age']])
10. 总结
Excel
  • 适用场景:适用于小到中等规模的数据集处理,特别适合于不需要编程背景的用户。
  • 优势:用户界面友好,内置多种功能,便于快速操作。
  • 局限性:处理大量数据时性能受限,扩展性有限。
Pandas
  • 适用场景:适用于大型数据集的处理和高级数据分析任务。
  • 优势:灵活性高,扩展性强,与 Python 生态系统的紧密集成。
  • 局限性:需要一定的编程基础,对于初学者来说学习曲线较陡峭。
结论

选择 Excel 还是 Pandas 取决于具体的数据处理需求和个人技能水平。对于需要快速操作小到中等规模数据集的用户,Excel 提供了直观的界面和丰富的内置功能。而对于需要处理大量数据、执行复杂分析的用户,Pandas 提供了更强大的数据处理能力和编程支持。在实践中,两种工具也可以相互配合使用,例如使用 Pandas 处理数据后,再将结果输出到 Excel 中进行进一步的展示和分享。

相关推荐
zhy81030236 分钟前
.net6 使用 FreeSpire.XLS 实现 excel 转 pdf - docker 部署
pdf·.net·excel
傻啦嘿哟44 分钟前
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
开发语言·python·excel
星星会笑滴3 小时前
vue+node+Express+xlsx+emements-plus实现导入excel,并且将数据保存到数据库
vue.js·excel·express
开心点幸运点16 小时前
Excel——宏教程(1)
excel
boy快快长大1 天前
将大模型生成数据存入Excel,并用增量的方式存入Excel
java·数据库·excel
Leuanghing1 天前
使用Python生成F分布表并导出为Excel文件
开发语言·python·excel·f分布
爱编程的小生1 天前
Easyexcel(4-模板文件)
java·excel
敲代码不忘补水1 天前
Python Matplotlib 数据可视化全面解析:选择它的七大理由与入门简介
开发语言·python·信息可视化·numpy·pandas·matplotlib
今日之风甚是温和1 天前
【Excel】拆分多个sheet,为单一表格
java·excel·sheet·vb宏
如意机反光镜裸1 天前
Excel如何批量导入图片
excel