当前位置: 首页 > news >正文

使用Python Pandas导入数据库和文件数据

大家好,在数据分析过程中,数据的导入是第一步,也是最重要的一步。Python的Pandas提供了强大的数据读取功能,支持从多种数据源导入数据,包括CSV、Excel、JSON、SQL数据库、网页等。Pandas库不仅能够处理常见的文件格式,还可以轻松对接数据库和网络资源,为数据分析和处理提供了极大的灵活性和便利性。

1.从CSV文件导入数据

CSV(Comma Separated Values)是一种常见的数据存储格式,Pandas的read_csv()函数可以轻松地从CSV文件中读取数据,并将其转换为Pandas的DataFrame格式。

import pandas as pd# 从CSV文件读取数据
df = pd.read_csv('data.csv')# 查看数据的前几行
print(df.head())

pd.read_csv()函数会读取data.csv文件,并返回一个DataFrame。head()方法用于查看数据的前五行。

有时CSV文件的分隔符可能不是逗号,例如制表符\t,可以通过sep参数指定分隔符。此外,如果CSV文件中存在缺失值,可以通过na_values参数定义哪些值应被视为缺失值。

df = pd.read_csv('data.csv', sep='\t', na_values=['NA', 'None'])

在这个例子中,使用\t作为分隔符,并将'NA''None'视为缺失值。

2.从Excel文件导入数据

Excel是另一种常用的数据存储格式。Pandas提供了read_excel()函数用于读取Excel文件。可以选择读取整个工作簿中的某个工作表。

# 读取Excel文件中的第一个工作表
df = pd.read_excel('data.xlsx')# 指定读取特定的工作表
df_sheet2 = pd.read_excel('data.xlsx', sheet_name='Sheet2')# 查看数据的前几行
print(df.head())
print(df_sheet2.head())

pd.read_excel()会读取data.xlsx文件的第一个工作表。如果需要读取其他工作表,可以通过sheet_name参数指定工作表的名称或索引。

如果需要读取Excel文件中的多个工作表,可以将sheet_name参数设置为None,Pandas会返回一个字典,字典的键是工作表名称,值是对应的DataFrame。

# 读取所有工作表
sheets = pd.read_excel('data.xlsx', sheet_name=None)# 查看每个工作表的数据
for sheet_name, df in sheets.items():print(f"工作表: {sheet_name}")print(df.head())

3.从JSON文件导入数据

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web应用和API。Pandas的read_json()函数支持从JSON文件中导入数据。

# 读取JSON文件
df = pd.read_json('data.json')# 查看数据的前几行
print(df.head())

如果JSON文件结构较为复杂,例如嵌套的对象或数组,可以通过指定orient参数来帮助Pandas正确解析数据。

df = pd.read_json('data.json', orient='records')

orient参数可以指定JSON对象的格式,例如recordsindexcolumns等,确保数据能够正确解析。

4.从SQL数据库导入数据

Pandas还可以直接从SQL数据库中读取数据,可以通过read_sql()函数执行SQL查询,并将结果转换为DataFrame。要连接数据库,需要使用sqlite3或其他数据库驱动库。

import sqlite3# 创建数据库连接
conn = sqlite3.connect('data.db')# 读取SQL查询结果
df = pd.read_sql('SELECT * FROM tablename', conn)# 查看数据的前几行
print(df.head())

使用sqlite3.connect()建立与SQLite数据库的连接,并通过pd.read_sql()执行SQL查询。对于其他数据库,如MySQL或PostgreSQL,可以使用相应的数据库驱动库,例如pymysqlpsycopg2

5.从HTML网页导入数据

Pandas还支持从网页表格中读取数据,通过read_html()函数,Pandas可以自动提取网页中的表格并转换为DataFrame。

# 从网页中读取所有表格
dfs = pd.read_html('https://example.com/table_page')# 查看第一个表格
print(dfs[0].head())

pd.read_html()会从网页中提取所有表格,并返回一个DataFrame列表。我们可以通过索引访问特定的表格。

6.从API接口导入数据

许多API接口返回的都是JSON格式的数据,可以使用requests库获取API返回的数据,然后使用Pandas处理这些数据。

import requests# 获取API返回的数据
response = requests.get('https://api.example.com/data')
json_data = response.json()# 将JSON数据转换为DataFrame
df = pd.DataFrame(json_data)# 查看数据的前几行
print(df.head())

通过这个方法,可以轻松从网络API中获取数据,并将其导入Pandas进行分析。

7.从本地和远程CSV文件导入数据

除了从本地读取CSV文件外,Pandas还支持从远程URL读取CSV文件,只需要将文件的URL传递给read_csv()函数即可。

url = 'https://example.com/data.csv'
df = pd.read_csv(url)# 查看数据的前几行
print(df.head())

这个功能非常适合处理来自网上公开数据集的场景,无需先将文件下载到本地,直接读取远程数据即可。

8.处理大规模数据

当处理大型文件或数据集时,加载整个数据可能会占用过多的内存。Pandas提供了多种优化策略来处理大规模数据,例如使用chunksize参数分块读取数据。

# 使用chunksize参数分块读取数据
chunk_size = 10000
chunk_iter = pd.read_csv('large_data.csv', chunksize=chunk_size)# 处理每个块
for chunk in chunk_iter:# 执行数据处理操作print(chunk.head())

通过分块读取,Pandas可以在内存限制的情况下处理大规模数据。

综上所述,本文介绍使用Pandas从不同的数据源导入数据,包括CSV、Excel、JSON、SQL数据库、网页以及API接口等。Pandas的read_*()函数提供了灵活、强大的数据读取功能,能够轻松处理各种数据格式和来源。

http://www.lryc.cn/news/446576.html

相关文章:

  • lef 中antenna解释
  • 初试Bootstrap前端框架
  • mysql数据库:超键、候选键、主键与外键
  • 音频转MP3格式困难?如何轻松实现wav转mp3?
  • 基于vue框架的大连盐业有限公司生产管理系统的设计与实现3hk5y(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 《深入理解JAVA虚拟机(第2版)》- 第13章 - 学习笔记【终章】
  • 网络工程师学习笔记——网络互连与互联网(三)
  • 【Tomcat】常见面试题整理 共34题
  • 到时间没回家又不接电话?如何迅速确定孩子的位置?
  • 接口自动化--commons内容详解-02
  • WanFangAi论文写作研究生论文写作神器在线生成真实数据,标注参考文献位置,表格公式代码流程图查重20以内,研究生论文写作技巧
  • cv2.waitkey(30) 按键盘无效
  • 【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解
  • Ubuntu24.04 安装ssh开启22端口及允许root用户远程登录
  • STM32基础学习笔记-DHT11单总线协议面试基础题7
  • Redisson分布式锁的概念和使用
  • uniapp小程序持续获取用户位置信息,后台位置获取
  • 优化算法(五)—梯度下降算法(附MATLAB程序)
  • TypeScript 设计模式之【单例模式】
  • UDP与TCP那个传输更快
  • 如何把PDF样本册转换为网址链接
  • centos7 semanage 离线安装 SELinux
  • 磨具生产制造9人共用一台工作站
  • Qt clicked()、clicked(bool)、toggled(bool)信号的区别和联系
  • nginx实现负载均衡的分发策略
  • 【Python】用代码片段掌握Python核心功能
  • JVM 内存模型
  • Linux2.6* 内核默认支持的文件系统
  • PMP--二模--解题--111-120
  • idea 创建多模块项目