自学内容网 自学内容网

Pandas-3:数据输入与输出

在数据分析过程中,数据的来源多种多样,包括CSV文件、Excel表格、JSON文件、SQL数据库等。本章将系统讲解如何利用Pandas高效地加载和保存这些数据文件.

1.1 读取数据

Pandas支持读取多种数据格式,包括常见的文本文件、表格文件和数据库。

1.1.1 读取CSV文件

CSV(Comma-Separated Values)是最常见的数据存储格式之一,Pandas通过read_csv方法读取CSV文件。

import pandas as pd

# 读取本地CSV文件
df = pd.read_csv('data.csv')
print(df)

# 指定分隔符
df = pd.read_csv('data.csv', sep=';')

# 只读取前N行
df = pd.read_csv('data.csv', nrows=10)

# 忽略某些列
df = pd.read_csv('data.csv', usecols=['Name', 'Age'])

# 设置编码方式
df = pd.read_csv('data.csv', encoding='utf-8')
1.1.2 读取Excel文件

Pandas通过read_excel方法读取Excel文件,需要安装相关依赖库,如openpyxl

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

# 指定工作表
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

# 指定某些列
df = pd.read_excel('data.xlsx', usecols=['Name', 'Age'])

# 跳过指定行数
df = pd.read_excel('data.xlsx', skiprows=2)
1.1.3 读取JSON文件

JSON(JavaScript Object Notation)是常用的数据交换格式,Pandas通过read_json方法读取JSON文件。

# 读取JSON文件
df = pd.read_json('data.json')

# 从URL读取JSON数据
df = pd.read_json('https://example.com/data.json')
1.1.4 读取SQL数据库

Pandas可以通过read_sql方法从SQL数据库中加载数据,依赖于sqlalchemysqlite3等库。

import sqlite3

# 创建数据库连接
conn = sqlite1.connect('data.db')

# 从SQL查询结果中读取数据
df = pd.read_sql('SELECT * FROM users', conn)

# 关闭连接
conn.close()

1.2 写入数据

Pandas支持将数据写入多种格式的文件,以下是常见的写入方法。

1.2.1 写入CSV文件

使用to_csv方法保存数据到CSV文件。

# 保存为CSV文件
df.to_csv('output.csv', index=False)

# 自定义分隔符
df.to_csv('output.csv', sep=';')

# 保存部分列
df.to_csv('output.csv', columns=['Name', 'Age'])
1.2.2 写入Excel文件

使用to_excel方法保存数据到Excel文件。

# 保存为Excel文件
df.to_excel('output.xlsx', index=False)

# 自定义工作表名
df.to_excel('output.xlsx', sheet_name='DataSheet')
1.2.3 写入JSON文件

使用to_json方法保存数据到JSON文件。

# 保存为JSON文件
df.to_json('output.json', orient='records', lines=True)
1.2.4 写入SQL数据库

使用to_sql方法将数据保存到SQL数据库。

from sqlalchemy import create_engine

# 创建数据库引擎
engine = create_engine('sqlite:///data.db')

# 将数据保存到SQL数据库
df.to_sql('users', engine, index=False, if_exists='replace')

1.3 文件处理中的常见问题
1.1.1 文件路径问题

在读取或保存文件时,应注意文件路径的正确性:

  • 使用绝对路径避免路径错误。
  • 通过os模块动态获取路径。
import os

# 获取当前目录
current_dir = os.getcwd()

# 动态生成路径
file_path = os.path.join(current_dir, 'data.csv')
df = pd.read_csv(file_path)
1.1.2 编码问题

文件编码错误可能导致读取失败,常见的解决方法:

  • 明确指定文件编码,如utf-8latin1
  • 使用chardet库检测文件编码。
import chardet

# 检测文件编码
with open('data.csv', 'rb') as f:
    result = chardet.detect(f.read())
print(result['encoding'])

# 指定正确编码读取
df = pd.read_csv('data.csv', encoding=result['encoding'])
1.1.3 数据完整性
  • 使用na_values参数指定缺失值标记。
  • 在写入文件时检查是否丢失数据。
# 读取时处理缺失值
df = pd.read_csv('data.csv', na_values=['N/A', 'NA'])

# 检查写入文件是否完整
df.to_csv('output.csv', index=False)

原文地址:https://blog.csdn.net/imdeity/article/details/143855239

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!