查看原文
其他

Pandas之数据的读入与导出

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:杨长青

本文编辑:杨慧琳

技术总编:张学人

有问题,不要怕!访问 

http://www.wuhanstring.com/uploads/5_aboutus/爬虫俱乐部-用户问题登记表.docx (复制到浏览器中)下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~

爬虫俱乐部隆重推出数据定制及处理业务,您有任何网页数据获取及处理方面的难题,请发邮件至我们邮箱statatraining@163.com,届时会有俱乐部高级会员为您排忧解难!

在数据分析行业日渐盛行的当下,原本作为脚本语言的python能够成为该领域的头号强力工具,很大一部分得力于著名的第三方库pandas的加持。使用python进行数据分析,离不开两个库:numpy和pandas.

numpy是python语言的科学计算库,使pyhon成为相当于matlab的存在。而pandas是对numpy的强大扩展,纳入了大量库和一些标准的数据模型,提供了大量快速便捷地处理数据的函数和方法。二者共同构成了一整套的python数据处理工具。

pandas有三种数据结构形式,分别是SeriesDataFrame索引对象。其中DataFrame是我们最常用到的数据形式也是pandas的核心数据形式。它是一种带行标签和列标签,支持相同类型数据和缺失值的多维数据,类似于咱们stata的数据结构。爬虫俱乐部将会推出一系列pandas库的推文,让大家了解如何运用pandas进行数据处理。

今天作为pandas的入门篇,主要给大家介绍如何读取csv、excel、dta等数据以及如何将DataFrame数据结构导出。 

数据读入

读入excel文件,一般使用read_excel函数。我们以读入上市公司2004年的利润表为例,程序如下:

import pandas as pd #通常的做法是将pandas简称为pdpath=r'E:\python程序\pandas\利润表2004.xls' #设置读入数据的路径df1=pd.read_excel(path,header=0,index_col=None) #读入excel,header=0,将第一行作为列名df1.head() #预览前5行

其中header选项用来指定行名,默认 header=0 将第一行数据作为行名,依次类推。Header=None 不指定行名。index_col 来设置索引,index_col=None 重新生成一列作为index值,这里可以指定 index_col=0,将第一列作为索引,也可使用 index_col=’stkcd’ 将股票代码作为索引。

前五条数据如下所示:

以上是对单个sheet的excel进行导入,当拥有多个sheet时将会怎么处理呢?我们以一个集成多个年份上市公司利润表的excel为例。

爬虫俱乐部是您身边的科研助手,能够为您在数据处理实证研究中提供帮助。承蒙近四万粉丝的支持与厚爱,我们在腾讯课堂推出了网络视频课程,专注于数据整理、网络爬虫、循环命令编制和结果输出…李老师及团队精彩地讲解,深入浅出,注重案例与实战,让您更加快速高效地掌握Stata技巧及数据处理的精髓,而且可以无限次重复观看,在原有课程基础上已上传了全新的内容!百分百好评,简单易学,一个月让您从入门到精通。绝对物超所值!观看学习网址:

https://ke.qq.com/course/286526?tuin=1b60b462,

敬请关注!

首先我们可以查看sheet的名称,程序如下:

path1=r'E:\python程序\pandas\利润表.xls'xls=pd.ExcelFile(path1) #读入excel表格xls.sheet_names # 查看excel表中所有sheet的名称

结果返回excel下sheet的名称:

这时我们可以用sheet_name选项来指定需要读取的sheet,我们以sheet2005为例:

sheet2005=pd.read_excel(path1,sheet_name='sheet2005')sheet2005.head()

这样该sheet就被成功读入:

当需要将属于sheet都进行导入时,可以利用循环进行读入,但是更方便的是指定sheet_name=None:

df=pd.read_excel(path1,sheet_name=None)

这就将每个sheet作为元素导入到一个名为df的字典中:

 Pandas还能导入csv、dta等文件,其方式和读入excel类似:read_csv、read_stata。

我们以读入stata中auto数据集为例:

path2=r'E:\python程序\pandas\auto.dta'auto=pd.read_stata(path2)auto.head() #展示前五行

前五行信息如下:

数据导出

  数据的导出方法和读入相似,可以导出成csv、excel、dta、sas等常用格式。导出方法基本相同,我们以导出2005年利润表为例:

sheet2005.to_csv('E\python程序\pandas\利润表2005.csv',index=False,header=True,columns=None)

其中:index指定是否导出索引,默认是True

          header指定是否将列名导出,默认是True

          colums可以指定需要导出的列,默认是None全部导出,如何我们仅仅想导出stkcd和year,则可指定:columns=[‘stkcd’,’year’]。

       当然也可以导出dta或者xlsx格式:

sheet2005.to_stata('E:\python程序\pandas\利润表2005.dta',write_index=False)sheet2005.to_excel('E:\python程序\pandas\利润表2005.xlsx',index=False,header=True,columns=None)

以上便是本次介绍的全部内容,如有需要,欢迎大家通过邮件和我们联系。

本文示例数据已上传至腾讯云端,大家可自行下载:https://stata-club-1257787903.cos.ap-chengdu.myqcloud.com/pandas/pandas--read.zip


对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!

往期推文推荐

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存