使用 Python 处理数据文件的第一步是读取数据,涉及的主要文件类型包括文本文件(如 csv、txt 等)、Excel 文件、数据库文件以及 API。
以下是几种 Python 读取数据文件的方法:
- Python 内置方法(read、readline、readlines)
read(): 一次性加载整个文件内容。建议使用带有 size 参数的 read(size) 方法,size 值越大执行时间越长。readline(): 每次读取一行内容。适用于内存不足的情况,但通常不常用。readlines(): 一次性加载整个文件并按行返回列表形式,便于遍历处理。
- 内置模块(csv)
Python 提供了 csv 模块来读写 csv 文件。CSV 是一种常见的数据存储格式,由逗号分隔的数据组成。此模块能够轻松处理各种规模的数据文件,但对于大数据量的操作可能需要在代码层面进行优化。
- csv 模块读取文件
# 读取csv文件 import csv with open('test.csv','r') as myFile: lines=csv.reader(myFile) for line in lines: print (line) - csv 模块写入文件
import csv with open('test.csv','w+') as myFile: myWriter=csv.writer(myFile) # writerrow一行一行写入 myWriter.writerow([7,8,9]) myWriter.writerow([8,'h','f']) # writerow多行写入 myList=[[1,2,3],[4,5,6]] myWriter.writerows(myList)
- csv 模块读取文件
- 使用 numpy 库(loadtxt、load、fromfile)
loadtxt 方法: 用于读取文本文件,包括 txt 和 csv 等格式的压缩文件(如 .gz 或 .bz2),要求每行的数据量必须相同。import numpy as np # loadtxt()中的dtype参数默认设置为float # 这里设置为str字符串便于显示 np.loadtxt('test.csv',dtype=str) # out:array(['1,2,3', '4,5,6', '7,8,9'], dtype='<U5')load 方法: 用于加载 numpy 专用的持久化文件,
以及.npy
或者.npz
持久化文件。pickledimport numpy as np # 先生成npy文件 np.save('test.npy', np.array([[1, 2, 3], [4, 5, 6]])) # 使用load加载npy文件 np.load('test.npy') ''' out:array([[1, 2, 3], [4, 5, 6]]) '''fromfile 方法: 可以读取简单的文本数据或二进制数据,这些数据通常由 tofile 方法保存。在读取时,用户需要指定元素类型并调整数组的形状。import numpy as np x = np.arange(9).reshape(3,3) x.tofile('test.bin') np.fromfile('test.bin',dtype=np.int) # out:array([0, 1, 2, 3, 4, 5, 6, 7, 8])
- 使用 pandas 库(read_csv、read_excel 等)
Pandas 是数据处理领域中最常用的分析库之一,支持读取多种格式的数据文件,通常输出为 dataframe 格式。例如:txt、csv、excel、json、剪切板内容、数据库、html、hdf、parquet、序列化文件、sas、stata 等。
read_csv 方法: 读取 csv 文件,输出 dataframe 格式。import pandas as pd pd.read_csv('test.csv')read_excel 方法: 支持 xlsx、xls 和 xlsm 格式的 Excel 文件。import pandas as pd pd.read_excel('test.xlsx')read_table 方法: 通过设置 sep 参数(分隔符)来读取任何文本文件。read_json 方法: 读取 json 格式的文件。df = pd.DataFrame([['a', 'b'], ['c', 'd']],index=['row 1', 'row 2'],columns=['col 1', 'col 2']) j = df.to_json(orient='split') pd.read_json(j,orient='split')read_html 方法: 读取 html 表格。read_clipboard 方法: 读取剪切板内容。read_pickle 方法: 读取序列化文件。read_sql 方法: 连接数据库后,通过传递 SQL 语句来读取数据。read_dhf 方法: 读取 hdf5 文件,适合处理大文件。read_parquet 方法: 读取 parquet 文件。read_sas 方法: 读取 sas 文件。read_stata 方法: 读取 stata 文件。read_gbq 方法: 读取 google bigquery 数据。
- 读写 Excel 文件(xlrd、xlwt、openpyxl 等)
Python 提供了多个库来处理 Excel 文件,除了前面提到的 pandas 之外,还有 xlrd、xlwt、openpyxl 和 xlwings。
xlrd 库: 支持从 Excel(xls、xlsx 格式)中读取数据。xlwt 库: 用于修改 Excel 文件,但不支持 xlsx 格式的文件。xlutils 库: 在 xlw 和 xlrd 中使用,可以对现有文件进行修改。openpyxl 库: 主要处理 xlsx 格式 Excel 文件的读取和编辑操作。xlwings 库: 支持 xlsx、xls 和 xlsm 格式的文件,可以进行读写及格式修改等操作。xlsxwriter 库: 用于生成 Excel 表格,包括插入数据和图表等功能,但不支持读取操作。Microsoft Excel API: 需安装 pywin32,直接与 Excel 进程通信,可以执行任何在 Excel 中能完成的任务,不过速度较慢。
- 数据库操作(pymysql、cx_Oracle 等)
Python 几乎支持所有类型的数据库交互。连接数据库后,可以通过 SQL 语句执行增删改查等操作。
pymysql 库: 用于与 MySQL 数据库进行交互。sqlalchemy 库: 提供了一个 ORM 框架,支持多种数据库的交互,包括 MySQL。cx_Oracle 库: 用于 Oracle 数据库的连接和操作。sqlite3 内置模块: 用于与 SQLite 数据库进行交互。pymssql 库: 用于 SQL Server 数据库的连接和操作。pymongo 库: 用于 MongoDB 非关系型数据库的操作。redis 和 pyredis 库: 用于 Redis 非关系型数据库的交互。
Pandas 学习网站:https://pandas.pydata.org/


雷达卡


京公网安备 11010802022788号







