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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 《Pandas 简易速速上手小册》第2章:Pandas 数据导入与导出(2024 最新版)

c8d8ed47f9a1368db458c1960ee26c7.png

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_id product_name price
1001 Product A 20.5
1002 Product B 35.0
1003 Product C 8.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_id age weight height diagnosis
1 30 70 175 A
2 45 80 180 B
3 40 75 - A
4 - 85 170 C

步骤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 的高级导入技巧可以使工作更加高效。

目录
相关文章
|
1月前
|
Python
使用 Pandas 库时,如何处理数据的重复值?
在使用Pandas处理数据重复值时,需要根据具体的数据特点和分析需求,选择合适的方法来确保数据的准确性和唯一性。
119 8
|
2天前
|
存储 数据挖掘 数据处理
Pandas 数据筛选:条件过滤
Pandas 是 Python 最常用的数据分析库之一,提供了强大的数据结构和工具。本文从基础到高级,介绍如何使用 Pandas 进行条件过滤,包括单一条件、多个条件过滤、常见问题及解决方案,以及动态和复杂条件过滤的高级用法。希望本文能帮助你更好地利用 Pandas 处理数据。
104 78
|
4天前
|
数据挖掘 索引 Python
Pandas数据读取:CSV文件
Pandas 是 Python 中强大的数据分析库,`read_csv` 函数用于从 CSV 文件中读取数据。本文介绍 `read_csv` 的基本用法、常见问题及其解决方案,并通过代码案例详细说明。涵盖导入库、读取文件、指定列名和分隔符、处理文件路径错误、编码问题、大文件读取、数据类型问题、日期时间解析、空值处理、跳过行、指定索引列等。高级用法包括自定义列名映射、处理多行标题和注释行。希望本文能帮助你更高效地使用 Pandas 进行数据读取和处理。
37 13
|
1天前
|
算法 数据挖掘 索引
Pandas数据排序:单列与多列排序详解
本文介绍了Pandas库中单列和多列排序的方法及常见问题的解决方案。单列排序使用`sort_values()`方法,支持升序和降序排列,并解决了忽略大小写、处理缺失值和索引混乱等问题。多列排序同样使用`sort_values()`,可指定不同列的不同排序方向,解决列名错误和性能优化等问题。掌握这些技巧能提高数据分析效率。
21 9
|
1月前
|
Python
|
1月前
|
Python
|
1月前
|
Python
Pandas 常用函数-数据合并
Pandas 常用函数-数据合并
40 1
|
1月前
|
索引 Python
Pandas 常用函数-数据排序
10月更文挑战第28天
17 1
|
1月前
|
Python
Pandas 常用函数-查看数据
Pandas 常用函数-查看数据
21 2
|
1月前
|
Python
Pandas 常用函数-数据选择和过滤
Pandas 常用函数-数据选择和过滤
16 0
下一篇
DataWorks