Python八种数据导入方法,你掌握了吗?
数据分析过程中,需要对获取到的数据进行分析,往往第一步就是导入数据。导入数据有很多方式,不同的数据文件需要用到不同的导入方式,相同的文件也会有几种不同的导入方式。下面总结几种常用的文件导入方法。
大多数情况下,会使用NumPy
或Pandas
来导入数据,因此在开始之前,先执行:
import numpy as np
import pandas as pd
两种获取help的方法
很多时候对一些函数方法不是很了解,此时Python提供了一些帮助信息,以快速使用Python对象。
使用Numpy中的
info
方法。
np.info(np.ndarray.dtype)
Python内置函数
help(pd.read_csv)
一、文本文件
1、纯文本文件
filename = 'demo.txt'
file = open(filename, mode='r') # 打开文件进行读取
text = file.read() # 读取文件的内容
print(file.closed) # 检查文件是否关闭
file.close() # 关闭文件
print(text)
使用上下文管理器 -- with
with open('demo.txt', 'r') as file:print(file.readline()) # 一行一行读取print(file.readline())print(file.readline())
2、表格数据:Flat文件
使用 Numpy 读取 Flat 文件
Numpy 内置函数处理数据的速度是 C 语言级别的。
Flat 文件是一种包含没有相对关系结构的记录的文件。(支持Excel、CSV和Tab分割符文件 )
具有一种数据类型的文件
用于分隔值的字符串跳过前两行。
在第一列和第三列读取结果数组的类型。
filename = 'mnist.txt'
data = np.loadtxt(filename,delimiter=',',skiprows=2,usecols=[0,2],dtype=str)
具有混合数据类型的文件
两个硬的要求:
跳过表头信息
区分横纵坐标
filename = 'titanic.csv'
data = np.genfromtxt(filename,delimiter=',',names=True,dtype=None)
使用 Pandas 读取Flat文件
filename = 'demo.csv'
data = pd.read_csv(filename, nrows=5, # 要读取的文件的行数header=None, # 作为列名的行号sep='\t', # 分隔符使用comment='#', # 分隔注释的字符na_values=[""]) # 可以识别为NA/NaN的字符串
二、Excel 电子表格
Pandas中的ExcelFile()
是pandas中对excel表格文件进行读取相关操作非常方便快捷的类,尤其是在对含有多个sheet的excel文件进行操控时非常方便。
file = 'demo.xlsx'
data = pd.ExcelFile(file)
df_sheet2 = data.parse(sheet_name='1960-1966',skiprows=[0],names=['Country','AAM: War(2002)'])
df_sheet1 = pd.read_excel(data,sheet_name=0,parse_cols=[0],skiprows=[0],names=['Country'])
使用sheet_names
属性获取要读取工作表的名称。
data.sheet_names
三、SAS 文件
SAS (Statistical Analysis System)是一个模块化、集成化的大型应用软件系统。其保存的文件即sas是统计分析文件。
from sas7bdat import SAS7BDAT
with SAS7BDAT('demo.sas7bdat') as file:df_sas = file.to_data_frame()
四、Stata 文件
Stata 是一套提供其使用者数据分析、数据管理以及绘制专业图表的完整及整合性统计软件。其保存的文件后缀名为.dta
的Stata文件。
data = pd.read_stata('demo.dta')
五、Pickled 文件
python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化。python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
import pickle
with open('pickled_demo.pkl', 'rb') as file:pickled_data = pickle.load(file) # 下载被打开被读取到的数据
与其相对应的操作是写入方法pickle.dump()
。
六、HDF5 文件
HDF5文件是一种常见的跨平台数据储存文件,可以存储不同类型的图像和数码数据,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。
HDF5 文件一般以 .h5
或者 .hdf5
作为后缀名,需要专门的软件才能打开预览文件的内容。
import h5py
filename = 'H-H1_LOSC_4_v1-815411200-4096.hdf5'
data = h5py.File(filename, 'r')
七、Matlab 文件
其由matlab将其工作区间里的数据存储的后缀为.mat
的文件。
import scipy.io
filename = 'workspace.mat'
mat = scipy.io.loadmat(filename)
八、关系型数据库
from sqlalchemy import create_engine
engine = create_engine('sqlite://Northwind.sqlite')
使用table_names()
方法获取一个表名列表
table_names = engine.table_names()
1、直接查询关系型数据库
con = engine.connect()
rs = con.execute("SELECT * FROM Orders")
df = pd.DataFrame(rs.fetchall())
df.columns = rs.keys()
con.close()
使用上下文管理器 -- with
with engine.connect() as con:rs = con.execute("SELECT OrderID FROM Orders")df = pd.DataFrame(rs.fetchmany(size=5))df.columns = rs.keys()
2、使用Pandas查询关系型数据库
df = pd.read_sql_query("SELECT * FROM Orders", engine)
数据探索
数据导入后会对数据进行初步探索,如查看数据类型,数据大小、长度等一些基本信息。这里简单总结一些。
1、NumPy Arrays
data_array.dtype # 数组元素的数据类型
data_array.shape # 阵列尺寸
len(data_array) # 数组的长度
2、Pandas DataFrames
df.head() # 返回DataFrames前几行(默认5行)
df.tail() # 返回DataFrames最后几行(默认5行)
df.index # 返回DataFrames索引
df.columns # 返回DataFrames列名
df.info() # 返回DataFrames基本信息
data_array = data.values # 将DataFrames转换为NumPy数组
推荐阅读
Pandas处理数据太慢,来试试Polars吧!
懒人必备!只需一行代码,就能导入所有的Python库
绝!关于pip的15个使用小技巧
介绍10个常用的Python内置函数,99.99%的人都在用!
可能是全网最完整的 Python 操作 Excel库总结!
Python八种数据导入方法,你掌握了吗?相关推荐
- 【Python】Python八种数据导入方法,你掌握了吗?
数据分析过程中,需要对获取到的数据进行分析,往往第一步就是导入数据.导入数据有很多方式,不同的数据文件需要用到不同的导入方式,相同的文件也会有几种不同的导入方式.下面总结几种常用的文件导入方法. 大多 ...
- 教你两种数据库覆盖式数据导入方法
摘要:本文主要介绍如何在数据库中完成覆盖式数据导入的方法. 前言 众所周知,数据库中INSERT INTO语法是append方式的插入,而最近在处理一些客户数据导入场景时,经常遇到需要覆盖式导入的情况 ...
- Hbase表两种数据备份方法-导入和导出示例
Hbase表两种数据备份方法-导入和导出示例 本文将提供两种备份方法 -- 1) 基于Hbase提供的类对hbase中某张表进行备份 2) 基于Hbase snapshot数据快速备份方法 场合:由于 ...
- HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
1.上传tar包 这里我上传的是apache-hive-1.2.1-bin.tar.gz 2.解压 mkdir -p /home/tuzq/software/hive/ tar -zxvf apach ...
- python接入excel_使用python将excel数据导入数据库过程详解
因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...
- Python 三种读文件方法read(), readline(), readlines()及去掉换行符\n
Python 三种读文件方法read(), readline(), readlines()及去掉换行符\n 首先, 让我们看下数据demo.txt, 就两行数据. 35durant teamGSW 1 ...
- Tikz作图教程:pgfplots宏包二维数据可视化的数据导入方法
pgfplots 绘图思想简介 下面一段介绍来自pgfplots说明文档的引言部分,它对pgfplots的绘图思想作了清晰地描述: 科研工作者在交流研究结果.论文时,将数据可视化往往是必要和方便的. ...
- Python——八种数据类型
Python 八种数据类型 1. 整数类型:int 有些强类型的编程语言会提供多种整数类型,每种类型的长度都不同,能容纳的整数的大小也不同,开发者要根据实际数字的大小选用不同的类型.例如C语言提供了 ...
- python将EXCEL数据导入数据库时日期型数据变成数字并加.0的问题一行代码解决方案方案
[问题描述]:python将EXCEL数据导入数据库时日期变成文本型数据并显示为数字格式 [解决方案] 数据源: codes: #!/usr/bin/python3 -- coding: utf-8 ...
最新文章
- 在CentOS 6.3 64bit上使用 smartmontools和MageCli 监测硬盘的健康状态
- dubbo 配置文件详解
- gui窗口遮挡算法_基于 C 语言开发的 GUI 框架
- 第8章 基本UDP套接口编程
- KMeans聚类算法Hadoop实现
- 基数排序及其思想 C++代码实现及分析 恋上数据结构笔记
- 抓取页面图片元素并保存到本机电脑
- this.counter$ = store.select(fromExample.getCounterCounter)之后马上subscribe
- DotText源码阅读(7) --Pingback/TrackBack
- Vue3 高级语法(一)—— h函数、jsx
- 论文浅尝 - ICLR2020 | 具有通用视觉表示的神经机器翻译
- Oracle 数据库的基本用法
- 【转载】白话经典算法系列之六 快速排序 快速搞定
- WPF 使用MSCHART 控件代码
- protues仿真闪退问题,亲测有效
- python selenium下载窗口 ie_用Python+selenium打开IE浏览器和Chrome浏览器的问题
- 两个自然数互素(relatively prime)
- tensorflow2.0自制神经网络数据集及预测结果(混淆矩阵)可视化
- python操作 e'xcel表格
- 一场青岛式婚礼的诞生(青岛民俗)
热门文章
- Pycharm如何自动换行
- go语言连接redis(已测试)
- CI框架中pdo的使用方法
- 如何用Fiddler对手机(安卓/iOS)数据进行抓包
- join 子查询 效率_MySQL查询在A表不在B表的记录
- Oracle Minus 取差集
- auto errored after 报错解决_css重点知识和bug解决方法
- linux修改文件夹名称_1.3.2 对 Hello Word! 程序代码进行编辑修改
- lofter 爬虫_200627 | Lofter格兰芬多标签日榜
- signature=4bfbf257ebc393e8ee3071d531b76778,(Mannose).