《Pandas 简易速速上手小册》第2章:Pandas 数据导入与导出(2024 最新版)

在这里插入图片描述

文章目录

  • 2.1 读取 CSV 和 Excel 文件
    • 2.1.1 基础知识
    • 2.1.2 重点案例:电商销售数据分析
      • 步骤1:数据准备
      • 步骤2:数据导入
      • 步骤3:销量分析
    • 2.1.3 拓展案例一:金融市场数据分析
      • 步骤1:数据准备
      • 步骤2:数据导入
      • 步骤3:趋势分析
    • 2.1.4 拓展案例二:医疗健康数据处理
      • 步骤1:数据准备
      • 步骤2:数据导入
      • 步骤2:数据清洗
  • 2.2 导出数据到不同格式
    • 2.2.1 基础知识
    • 2.2.2 重点案例:分析报告导出
      • 步骤1:准备数据
      • 步骤2:导出数据
    • 2.2.3 拓展案例一:研究数据集的共享
      • 步骤1:准备数据
      • 步骤2:导出数据
    • 2.2.4 拓展案例二:金融市场日报
      • 步骤1:准备数据
      • 步骤2:导出数据
  • 2.3 高级数据导入技巧
    • 2.3.1 基础知识
    • 2.3.2 重点案例:大型股市数据分析
      • 步骤1:准备数据
      • 步骤2:分块读取数据
    • 2.3.3 拓展案例一:处理复杂的电力消耗数据
      • 步骤1:准备数据
      • 步骤2:指定数据类型和日期解析
    • 2.3.4 拓展案例二:国际航班数据导入与转换
      • 步骤1:准备数据
      • 步骤2:日期时间解析

2.1 读取 CSV 和 Excel 文件

在这一节中,我们将深入了解如何使用 Pandas 读取 CSV 和 Excel 文件,这是数据分析的基石。

2.1.1 基础知识

Pandas 提供了非常直观的函数来读取 CSV 和 Excel 文件,这些函数是 read_csv()read_excel()。在使用这些函数之前,你需要了解几个重要的参数:

  • filepath_or_buffer: 文件的路径。
  • sep: CSV 文件中用于分隔字段的字符,默认为 ‘,’。
  • header: 用于指定哪一行作为列名,默认为 0,表示第一行。
  • index_col: 用于指定哪一列作为索引。
  • usecols: 指定需要读取的列。

2.1.2 重点案例:电商销售数据分析

假设你有一个电商平台的日销售数据 CSV 文件和产品信息的 Excel 文件,你需要分析产品销量。

步骤1:数据准备

电商销售数据(sales_data.csv)

date,product_id,quantity_sold
2024-01-01,1001,5
2024-01-01,1002,3
2024-01-02,1001,6
2024-01-02,1003,2

产品信息(product_info.xlsx)

product_idproduct_nameprice
1001Product A20.5
1002Product B35.0
1003Product C8.0

步骤2:数据导入

import pandas as pd# 读取 CSV 文件
sales_data = pd.read_csv('sales_data.csv', sep=',', header=0)# 读取 Excel 文件
product_data = pd.read_excel('product_info.xlsx')

步骤3:销量分析

# 合并销售数据和产品信息
combined_data = pd.merge(sales_data, product_data, on='product_id')# 分析每个产品的销量
sales_summary = combined_data.groupby('product_name').sum()['quantity_sold']
print(sales_summary)

2.1.3 拓展案例一:金融市场数据分析

分析某股票在过去一年的日交易数据,该数据以 CSV 格式提供。

步骤1:数据准备

股票市场数据(stock_data.csv)

date,open,high,low,close,volume
2024-01-01,100,102,99,101,5000
2024-01-02,101,103,100,102,6000
2024-01-03,102,104,101,103,5500
2024-01-04,103,105,102,104,4500

步骤2:数据导入

# 读取股票市场数据
stock_data = pd.read_csv('stock_data.csv', index_col='date', parse_dates=True)

步骤3:趋势分析

# 计算简单移动平均值
stock_data['SMA'] = stock_data['close'].rolling(window=15).mean()# 绘制趋势图
stock_data[['close', 'SMA']].plot(title='Stock Trends')

2.1.4 拓展案例二:医疗健康数据处理

假设你有一份包含病人信息的 Excel 文件,需要进行数据清洗和分析。

步骤1:数据准备

医疗数据(patient_data.xlsx)

patient_idageweightheightdiagnosis
13070175A
24580180B
34075-A
4-85170C

步骤2:数据导入

# 读取病人数据
patient_data = pd.read_excel('patient_data.xlsx')

步骤2:数据清洗

# 删除缺失值过多的列
patient_data_cleaned = patient_data.dropna(axis=1, thresh=0.8 * len(patient_data))# 填充缺失值
patient_data_cleaned = patient_data_cleaned.fillna(method='ffill')

通过这些案例,你可以看到 Pandas 在读取和处理 CSV 和 Excel 文件方面的强大能力。无论是处理商业销售数据,分析股票市场趋势,还是清洗医疗数据,Pandas 都能轻松胜任。

在这里插入图片描述


2.2 导出数据到不同格式

在这一节中,我们将深入了解如何使用 Pandas 将数据导出到不同的格式,这对于数据共享和报告非常重要。

2.2.1 基础知识

Pandas 提供了多种函数来导出数据,包括但不限于:

  • to_csv(): 将数据导出为 CSV 文件。
  • to_excel(): 将数据导出为 Excel 文件。
  • to_json(): 将数据导出为 JSON 格式。
  • to_sql(): 将数据导出到 SQL 数据库。

导出时,你可以指定各种参数来格式化输出,如指定分隔符、是否包含索引、选择导出的列等。

2.2.2 重点案例:分析报告导出

假设你完成了对某公司销售数据的分析,并需要将结果导出为不同格式以供不同部门使用。

步骤1:准备数据

import pandas as pd# 示例销售数据
data = {'month': ['January', 'February', 'March'],'sales': [200, 240, 310],'expenses': [150, 190, 200]
}
df = pd.DataFrame(data)

步骤2:导出数据

# 导出为 CSV
df.to_csv('monthly_sales_report.csv', index=False)# 导出为 Excel
df.to_excel('monthly_sales_report.xlsx', index=False)# 导出为 JSON
df.to_json('monthly_sales_report.json')

2.2.3 拓展案例一:研究数据集的共享

你的研究团队需要将收集的环境数据共享给国际合作伙伴。

步骤1:准备数据

# 示例环境数据
env_data = {'location': ['Location1', 'Location2'],'temperature': [22, 19],'humidity': [80, 70]
}
env_df = pd.DataFrame(env_data)

步骤2:导出数据

# 导出为 Excel
env_df.to_excel('environmental_data.xlsx')# 导出为 JSON
env_df.to_json('environmental_data.json')

2.2.4 拓展案例二:金融市场日报

你负责每日向客户提供金融市场的摘要报告。

步骤1:准备数据

# 示例金融市场数据
fin_data = {'date': ['2024-01-01', '2024-01-02'],'open': [100, 102],'close': [105, 104]
}
fin_df = pd.DataFrame(fin_data)

步骤2:导出数据

# 导出为 CSV
fin_df.to_csv('financial_market_summary.csv', index=False)# 导出为 HTML(便于嵌入网页或邮件)
fin_df.to_html('financial_market_summary.html')

通过这些案例,你可以看到 Pandas 在导出数据方面的灵活性。无论是准备销售报告、共享研究数据还是生成金融市场摘要,Pandas 让数据导出变得既简单又高效。

在这里插入图片描述


2.3 高级数据导入技巧

在这一节中,我们将探索 Pandas 中的一些高级数据导入技巧,这些技巧对于处理大型数据集和复杂数据场景非常有用。

2.3.1 基础知识

  1. 分块读取(Chunking): 对于大型文件,一次性读入可能会消耗大量内存。Pandas 允许分块读取数据,使用 chunksize 参数。
  2. 数据类型指定(Dtype Specification): 在导入数据时指定列的数据类型,可以提高效率并减少内存使用。
  3. 日期解析(Date Parsing): 在导入时解析日期,可以使用 parse_dates 参数。
  4. 处理缺失值(Handling Missing Data): 在导入时处理缺失值,可以使用 na_values 参数。

2.3.2 重点案例:大型股市数据分析

假设你需要分析一个非常大的股市交易数据集。

步骤1:准备数据

import pandas as pd
import numpy as np# 生成大型数据集的模拟
dates = pd.date_range('20240101', periods=10000)
data = pd.DataFrame({'date': dates,'price': np.random.randn(10000) * 100 + 100,'volume': np.random.randint(100, 10000, size=10000)
})
data.to_csv('large_stock_data.csv', index=False)

步骤2:分块读取数据

chunk_size = 1000
for chunk in pd.read_csv('large_stock_data.csv', chunksize=chunk_size):# 在这里处理每个块的数据print(chunk.head())

2.3.3 拓展案例一:处理复杂的电力消耗数据

假设你需要从一个包含复杂格式和多种数据类型的电力消耗记录文件中导入数据。

步骤1:准备数据

# 生成电力消耗数据的模拟
hours = pd.date_range('2024-01-01', '2024-01-31', freq='H')
power_data = pd.DataFrame({'timestamp': hours,'consumption': np.random.randn(len(hours)) * 50 + 500,'status': np.random.choice(['OK', 'HIGH', 'LOW'], len(hours))
})
power_data.to_csv('power_consumption.csv', index=False)

步骤2:指定数据类型和日期解析

power_df = pd.read_csv('power_consumption.csv',parse_dates=['timestamp'],dtype={'status': 'category'}
)
print(power_df.info())

2.3.4 拓展案例二:国际航班数据导入与转换

你的任务是处理一个国际航班时间表数据集,其中包含不同格式的日期和时间。

步骤1:准备数据

# 生成航班数据的模拟
flights_data = pd.DataFrame({'flight': ['FL001', 'FL002', 'FL003'],'departure': ['2024-01-01 08:00:00', '2024-01-01 09:00:00', '2024-01-01 10:00:00'],'arrival': ['2024-01-01 12:00:00', '2024-01-01 13:00:00', '2024-01-01 14:00:00']
})
flights_data.to_csv('flights_schedule.csv', index=False)

步骤2:日期时间解析

flights_df = pd.read_csv('flights_schedule.csv',parse_dates=['departure', 'arrival']
)
print(flights_df.info())

通过这些案例,你可以看到 Pandas 在处理大型数据集、复杂数据格式以及特殊数据类型时的能力。无论是分析大型股市数据,处理电力消耗记录,还是导入国际航班时间表,使用 Pandas 的高级导入技巧可以使工作更加高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/443568.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7——下载——安装

解释 CentOS 7是CentOS项目发布的开源类服务器操作系统,于2014年7月7日正式发布。CentOS 7是一个企业级的Linux发行版本,它源于RedHat免费公开的源代码进行再发行。CentOS 7内核更新至3.10.0、支持Linux容器、支持Open VMware Tools及3D图像即装即用、支…

基于Java SSM框架实现影片推荐系统项目【项目源码】

基于java的SSM框架实现影片推荐系统演示 JSP技术介绍 JSP技术本身是一种脚本语言,但它的功能是十分强大的,因为它可以使用所有的JAVA类。当它与JavaBeans 类进行结合时,它可以使显示逻辑和内容分开,这就极大的方便了读者的需求。…

林浩然的“编程”与“诗译”奇妙之旅

林浩然的“编程”与“诗译”奇妙之旅 Lin Haoran’s Marvelous Journey in “Coding” and “Poetry Translation” 在数学与编程的世界里,主角林浩然宛如一位解谜大师,乐此不疲地探索着“一题多解”的奥秘。每当他面对一道复杂的数学难题或编程任务时&a…

SolidWorks基本应用

SolidWorks初始配置 新建零件,快捷键【Ctrl n】 保存零件,最好是新建一个【桌面小屏幕】文件夹,进行保存。 屏幕工程图: 建模: 单击功能栏的【草图栏】,然后点击【草图绘制】,草图绘制前…

使用草料二维码表单功能,让数据收集更高效、规范

功能介绍 表单作为草料二维码的高级功能之一,可用于收集格式统一的数据。你可以通过组合姓名、图片、检查项等组件搭建出电子表单,关联到二维码中,扫码填写表单即可更快速、规范的收集数据。 这些数据保存在账号下形成动态档案,…

使用ffmpeg madiamtx制作一个rtsp源

有很多人在跑rtsp解码的demo的时候, 苦于找不到一个可以拉流的源, 这里说一个简单的方法. 使用mediamtx, 加ffmpeg加mp4文件方式, 模拟一个rtsp的源. 基本架构就是这样. 在PC上, 这里说的PC可以是远程的服务器, 也可以是你的开发用的windows, 都行. 把mediamtx, 在pc上跑起来 …

芒果tv数据采集与可视化实现

摘 要 一个爬虫从网上爬取数据的大致过程可以概括为:向特定的网站服务器发出请求,服务器返回请求的网页数据,爬虫程序收到服务器返回的网页数据并加以解析提取,最后把提取出的数据进行处理和存储。因此,一个爬虫程序可…

Linux系统——Shell编程免交互及小命令详解

目录 一、免交互 1.Here Document 多行重定向 1.1定义 1.2语法格式 1.3tee命令 1.4cat与tee 1.5Here Document 变量设定 2.Expect 2.1定义 2.2格式 2.3命令详解 2.4示例 2.4.1交互式 2.4.2远程拷贝文件 2.4.3远程登录 交互式登录 免交互式登录 2.4.4免交互远程…

Origin 2022下载安装教程,操作简单,小白也能轻松搞定,附安装包,带软件使用教程

前言 Origin是一个科学绘图、数据分析软件,支持各种各样的2D/3D图形,包括统计,信号处理,曲线拟合以及峰值分析,Origin具有强大的数据导入功能和多样的图形输出格式。 准备工作 1、Win7及以上系统 2、提前准备好 Or…

函数高级.

函数高级 1. 函数嵌套1.1 函数在作用域中1.2 函数定义的位置1.3 嵌套引发的作用域问题练习题 2.闭包3.装饰器3.1 第一回合3.2 第二回合3.3 第三回合优化伪应用场景重要补充:functools 总结作业 各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可…

150基于matlab的凸轮轮廓的设计计算与绘图计算此结构的最优化参数

基于matlab的凸轮轮廓的设计计算与绘图计算此结构的最优化参数,根据其原理输出推程和回程的最大压力角、最小曲率半径等相关结果。程序已调通,可直接运行。 150 凸轮轮廓的设计 结构的最优化参数 (xiaohongshu.com)

Android矩阵Matrix变换setRectToRect,Kotlin

Android矩阵Matrix变换setRectToRect,Kotlin 在 Android画布Canvas裁剪区域clipRect,Kotlin-CSDN博客 基础上,增加一个点,通过setRectToRect挖出Bitmap原图中心区域的一块放到目标RectF里面。 import android.content.Context imp…