[Python] Python中八种数据导入方法总结

3893 1
王子 2022-11-6 10:33:08 | 显示全部楼层 |阅读模式
目录

    两种获取help的方法
      使用Numpy中的info方法Python内置函数
    一、文本文件
      1、纯文本文件2、表格数据:Flat文件
    二、Excel 电子表格三、SAS 文件四、Stata 文件五、Pickled 文件六、HDF5 文件七、Matlab 文件八、关系型数据库
      1、直接查询关系型数据库2、使用Pandas查询关系型数据库
    数据探索
      1、NumPy Arrays2、Pandas DataFrames


大多数情况下,会使用NumPy或Pandas来导入数据,因此在开始之前,先执行:
  1. importnumpyasnp
  2. importpandasaspd
复制代码
两种获取help的方法

很多时候对一些函数方法不是很了解,此时Python提供了一些帮助信息,以快速使用Python对象。

使用Numpy中的info方法
  1. np.info(np.ndarray.dtype)
复制代码



Python内置函数
  1. help(pd.read_csv)
复制代码



一、文本文件


1、纯文本文件
  1. filename='demo.txt'
  2. file=open(filename,mode='r')#打开文件进行读取
  3. text=file.read()#读取文件的内容
  4. print(file.closed)#检查文件是否关闭
  5. file.close()#关闭文件
  6. print(text)
复制代码
使用上下文管理器 -- with
  1. withopen('demo.txt','r')asfile:
  2. print(file.readline())#一行一行读取
  3. print(file.readline())
  4. print(file.readline())
复制代码
2、表格数据:Flat文件

使用 Numpy 读取 Flat 文件
Numpy 内置函数处理数据的速度是 C 语言级别的。
Flat 文件是一种包含没有相对关系结构的记录的文件。(支持Excel、CSV和Tab分割符文件 )
1.具有一种数据类型的文件
用于分隔值的字符串跳过前两行。在第一列和第三列读取结果数组的类型。
  1. filename='mnist.txt'
  2. data=np.loadtxt(filename,
  3. delimiter=',',
  4. skiprows=2,
  5. usecols=[0,2],
  6. dtype=str)
复制代码
2.具有混合数据类型的文件
两个硬的要求:
    跳过表头信息区分横纵坐标
  1. filename='titanic.csv'
  2. data=np.genfromtxt(filename,
  3. delimiter=',',
  4. names=True,
  5. dtype=None)
复制代码


使用 Pandas 读取Flat文件
  1. filename='demo.csv'
  2. data=pd.read_csv(filename,
  3. nrows=5,#要读取的文件的行数
  4. header=None,#作为列名的行号
  5. sep='\t',#分隔符使用
  6. comment='#',#分隔注释的字符
  7. na_values=[""])#可以识别为NA/NaN的字符串
复制代码
二、Excel 电子表格

Pandas中的ExcelFile()是pandas中对excel表格文件进行读取相关操作非常方便快捷的类,尤其是在对含有多个sheetexcel文件进行操控时非常方便。
  1. file='demo.xlsx'
  2. data=pd.ExcelFile(file)
  3. df_sheet2=data.parse(sheet_name='1960-1966',
  4. skiprows=[0],
  5. names=['Country',
  6. 'AAM:War(2002)'])
  7. df_sheet1=pd.read_excel(data,
  8. sheet_name=0,
  9. parse_cols=[0],
  10. skiprows=[0],
  11. names=['Country'])
复制代码
使用sheet_names属性获取要读取工作表的名称。
  1. data.sheet_names
复制代码
三、SAS 文件

SAS (Statistical Analysis System)是一个模块化、集成化的大型应用软件系统。其保存的文件即sas是统计分析文件。
  1. fromsas7bdatimportSAS7BDAT
  2. withSAS7BDAT('demo.sas7bdat')asfile:
  3. df_sas=file.to_data_frame()
复制代码
四、Stata 文件

Stata 是一套提供其使用者数据分析、数据管理以及绘制专业图表的完整及整合性统计软件。其保存的文件后缀名为.dta的Stata文件。
  1. data=pd.read_stata('demo.dta')
复制代码
五、Pickled 文件

python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化。python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
  1. importpickle
  2. withopen('pickled_demo.pkl','rb')asfile:
  3. pickled_data=pickle.load(file)#下载被打开被读取到的数据
复制代码
与其相对应的操作是写入方法pickle.dump() 。

六、HDF5 文件

HDF5文件是一种常见的跨平台数据储存文件,可以存储不同类型的图像和数码数据,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。
HDF5 文件一般以 .h5 或者 .hdf5 作为后缀名,需要专门的软件才能打开预览文件的内容。
  1. importh5py
  2. filename='H-H1_LOSC_4_v1-815411200-4096.hdf5'
  3. data=h5py.File(filename,'r')
复制代码
七、Matlab 文件

其由matlab将其工作区间里的数据存储的后缀为.mat的文件。
  1. importscipy.io
  2. filename='workspace.mat'
  3. mat=scipy.io.loadmat(filename)
复制代码
八、关系型数据库
  1. fromsqlalchemyimportcreate_engine
  2. engine=create_engine('sqlite://Northwind.sqlite')
复制代码
使用table_names()方法获取一个表名列表
  1. table_names=engine.table_names()
复制代码
1、直接查询关系型数据库
  1. con=engine.connect()
  2. rs=con.execute("SELECT*FROMOrders")
  3. df=pd.DataFrame(rs.fetchall())
  4. df.columns=rs.keys()
  5. con.close()
复制代码
使用上下文管理器 -- with
  1. withengine.connect()ascon:
  2. rs=con.execute("SELECTOrderIDFROMOrders")
  3. df=pd.DataFrame(rs.fetchmany(size=5))
  4. df.columns=rs.keys()
复制代码
2、使用Pandas查询关系型数据库
  1. df=pd.read_sql_query("SELECT*FROMOrders",engine)
复制代码
数据探索

数据导入后会对数据进行初步探索,如查看数据类型,数据大小、长度等一些基本信息。这里简单总结一些。

1、NumPy Arrays
  1. data_array.dtype#数组元素的数据类型
  2. data_array.shape#阵列尺寸
  3. len(data_array)#数组的长度
复制代码
2、Pandas DataFrames
  1. df.head()#返回DataFrames前几行(默认5行)
  2. df.tail()#返回DataFrames最后几行(默认5行)
  3. df.index#返回DataFrames索引
  4. df.columns#返回DataFrames列名
  5. df.info()#返回DataFrames基本信息
  6. data_array=data.values#将DataFrames转换为NumPy数组
复制代码
以上就是Python中八种数据导入方法总结的详细内容,更多关于Python数据导入的资料请关注中国红客联盟其它相关文章!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行