当前位置: 首页 > 科技观察

Python中的八种数据导入方法你掌握了吗?

时间:2023-03-13 16:31:07 科技观察

大多数情况下会使用NumPy或者Pandas来导入数据,所以在开始之前,执行:importnumpyasnpimportpandasaspd两种获取帮助的方法很多时候你对一些函数和方法不是很了解。此时Python提供了一些帮助信息来快速使用Python对象。使用Numpy中的info方法。np.info(np.ndarray.dtype)Python内置函数help(pd.read_csv)1.文本文件1,纯文本文件filename='demo.txt'file=open(filename,mode='r')#打开文件Readtext=file.read()#读取文件内容print(file.closed)#检查文件是否关闭file.close()#关闭文件print(text)使用上下文管理器--withwithopen('demo.txt','r')asfile:print(file.readline())#逐行读取print(file.readline())print(file.readline())2.表格数据:使用Numpy读取平面文件Numpy内置函数读取平面文件的数据处理速度是C语言级别的。平面文件是一种包含没有相对关系结构的记录的文件。(支持Excel、CSV和Tab分隔文件。)分隔值的数据类型为字符串的文件跳过前两行。读取第一列和第三列中结果数组的类型。filename='mnist.txt'data=np.loadtxt(filename,delimiter=',',skiprows=2,usecols=[0,2],dtype=str)混合数据类型文件的两个硬性要求:skip区分水平和纵坐标通过头信息filename='titanic.csv'data=np.genfromtxt(filename,delimiter=',',names=True,dtype=None)使用Pandas读取平面文件filename='demo.csv'data=pd.read_csv(filename,nrows=5,#读取文件的行数header=None,#行号作为列名sep='\t',#分隔符使用comment='#',#分隔注释的字符na_values=[""])#可以识别为NA/NaN的字符串2.Excel电子表格中的ExcelFile()Pandas是一个非常方便快捷的类,用于读取pandas中的excel表格文件。特别是在处理包含多个工作表的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_names3.SAS文件SAS(StatisticalAnalysisSystem)是一个模块化、集成化的大型应用软件系统。保存的文件sas是一个统计分析文件。fromsas7bdatimportSAS7BDATwithSAS7BDAT('demo.sas7bdat')asfile:df_sas=file.to_data_frame()4.Stata文件Stata是一个完整的集成统计软件,为用户提供数据分析、数据管理和绘制专业图表。保存的文件后缀名为.dta的Stata文件。data=pd.read_stata('demo.dta')5、pickled文件python中几乎所有的数据类型(列表、字典、集合、类等)都可以用pickle进行序列化。Python的pickle模块实现了基本的数据序列化和反序列化。通过pickle模块的序列化操作,我们可以将程序中运行的对象信息保存到文件中永久保存;通过pickle模块的反序列化操作,我们可以从文件中创建上一个程序保存的对象。importpicklewithopen('pickled_demo.pkl','rb')asfile:pickled_data=pickle.load(file)#下载打开读取的数据对应的操作是写方法pickle.dump()。6、HDF5文件HDF5文件是一种通用的跨平台数据存储文件,可以存储不同类型的图像和数字数据,可以在不同类型的机器上传输。同时,有统一处理这种文件格式的函数库。HDF5文件一般以.h5或.hdf5为后缀,需要专门的软件才能打开和预览文件内容。importh5pyfilename='H-H1_LOSC_4_v1-815411200-4096.hdf5'data=h5py.File(filename,'r')7.matlab文件是后缀为.mat的文件,通过matlab将数据存储在其工作空间中。importscipy.iofilename='workspace.mat'mat=scipy.io.loadmat(filename)8.关系数据库fromsqlalchemyimportcreate_engineengine=create_engine('sqlite://Northwind.sqlite')使用table_names()方法得到一个表名列表table_names=engine.table_names()1、直接查询关系型数据库con=engine.connect()rs=con.execute("SELECT*FROMOrders")df=pd.DataFrame(rs.fetchall())df.columns=rs.keys()con.close()使用上下文管理器--withwithengine.connect()作为con:rs=con.execute("SELECTOrderIDFROMOrders")df=pd.DataFrame(rs.fetchmany(size=5))df.columns=rs.keys()2.使用Pandas查询关系型数据库df=pd.read_sql_query("SELECT*FROMOrders",engine)数据探索导入数据后,会对数据进行初步探索,比如查看数据类型、数据大小、长度等一些基本信息。这是一个简短的总结。1.NumPyArraysdata_array.dtype#数组元素的数据类型data_array.shape#数组大小len(data_array)#数组长度2.PandasDataFramesdf.head()#返回DataFrames的前几行(默认5行)df.tail()#返回DataFrames的最后几行(默认5行)df.index#返回DataFrames索引df.columns#返回DataFrames列名df.info()#返回DataFrames基本信息data_array=data.values#ConvertDataFrames到NumPy数组