- 一、打开
- 1、打开excel文件
- 2、打开csv文件
- 3、打开txt文件
- 4、打开数据库sql文件
- 5、read_clipboard()
- 6、read_html()
- 二、查看
- df.shape
- df.columns
- df.head()
- df.head()
- 三、保存
- 1、保存
- 2、多个表写入同个文件
- 四、新建
- 1、通过列表创建Dataframe
- 2、使用字典创建Dataframe
- 五、对应EXCEL
利用pandas读取文件主要用到的函数是read_xxx(),读取后数据结构为dataframe。
1、打开excel文件pd.read_excel()可以用来读取excel文件
import pandas as pd df=pd.read_excel(r'xxx.xls')# 文件名或文件路径 df
就是那么简单,当然还有参数需要学习一下
*sheet_name:指定文件中的表名 usecols:读取表格中哪几列 nrows:使用哪一列作为行索引 index_col:使用哪一列作为行索引 *header: 哪一行设置为列索引,默认是第一行,即header = 0,以header = 1, 以第二行为列索引 date_parser:解析日期的函数 *encoding: 默认是utf-8,还可以是gbk nrows: 读取多少行数据 skiprows: 跳过前几行读取文件,默认从0开始 *engine: 默认是C,如文件路径存在中文时,engine= "python" names: 列索引
那么开始实战
一个表有两个sheet表一与表二
用pandas最简单方式打开
在不指定sheet_name的情况下默认是第一个sheet,如果打开第二个sheet,
df=pd.read_excel(r'工作表.xlsx',sheet_name='表2'#或者sheet_name=1) df
第二个sheet是存在合并单元格,用pandas打开的时候会自动默认拆分,如图
题目1:打开第二个sheet,从第二行开始读取,读取表格中前两列,并自定义列名,列索引为’id’
df=pd.read_excel(r'工作表.xlsx',sheet_name='表2'#sheet_name=1
,skiprows = 2#第二行开始读取
,usecols = [0,1,2]#只获取第一、二、三列
,header=None#无列名
,names = ["用户id","姓名","性别"]#添加列名
)
df
题目2:转化时间列,读取前五行
df=pd.read_excel(r'工作表.xlsx',parse_dates=['出生年月'],nrows=5) df2、打开csv文件
csv文件是以逗号为分隔符的文件,读取参数与excel基本类似,与excel的读取不一样的地方在于如遇到中文路径必须得设置engine参数;
文件为gbk格式的csv,若不设置encoding参数,会报错,并且文件路径带有中文,需要设置engine参数,不然也会报错;
df = pd.read_csv(r"D:下载示例csv.csv",encoding = "gbk",engine = "python")
encoding默认是utf-8格式,根据需要还可能是gbk,示例就是gbk格式;
engine指定读取引擎,默认是c语言,如有路径有中文,需设置为python,python引擎更为全面;
csv基本与Excel用法相似,不再赘述
3、打开txt文件在读取 txt 文件时,经常遇到分隔符非空格的情况, read_table 有一个分割参数 sep ,它使得用户可以自定义分割符号,进行 txt 数据的读取。例如,下面的读取的表以 |||| 为分割
pd.read_table('data/my_table_special_sep.txt',
sep=' |||| ', engine='python')
4、打开数据库sql文件
打开sql文件有很多种方法
以pymysql为例:
import pymysql eng=pymysql.connect(host='111.222.33.44',user='root',password'1234',db='test',charset='utf-8') sql='select * from 表名' df=pd.read_sql(sql,eng)
host是数据库地址,user是用户名,password是密码,db是数据库名,charset是数据库编码。
以sqlalchemy为例
conn = create_engine('mysql+pymysql://root:1234@11.22.333.444:3306/test')
sql = 'select * from 表名'
df = pd.read_sql(sql,conn )
5、read_clipboard()
将剪贴簿内容转换成Dataframe
步骤:复制其他来源的表格,执行pd.read_clipboard()
有兴趣可以试一下
快速获取在html中页面中Table型表格抓取的数据
table类型的表格网页结构如下:
几种标签含义:
| : 定义表格的表头 | : 定义表格单元*
以财富五百强为例: df=pd.read_html('https://www.fortunechina.com/fortune500/c/2018-07/19/content_311046.htm')
#财富五百强名单
df
二、查看
df.shape
df.shape #该方法会返回这个表的(行数,列数)df.columns 表的标题 df.columns Index(['用户id', '姓名', '性别'], dtype='object')df.head() df.head() #默认读取前五行 df.head(10) #读取前10行df.head() 三、保存 1、保存 excel,csv,txt写入文件的方式基本类似,以pandas的to_xx()方式写入;因为三者类似,这里只用excel格式来示例。 (1)index:参数只有True 或者 False 是否保留行索引 (2)columns: 通过列索引指定所需列 (3)sheet_name: sheet名称 (4)encoding:编码格式,utf-8或者gbk (5)na_rep: 缺失值填充 (6)inf_rep:无穷值填充 (7)index_label: 行索引标签 (8)header: 默认为True,False没有列索引,如需更改列名,则header = ["列1","列2","列3"] df.to_excel(r'工作表1.xlsx',index=False) #最简单,需要什么参数就是自己加 df.to_excel(r"1.xlsx",index = False,columns = ["用户id","姓名","性别"],encoding = "utf-8",sheet_name = "示例",na_rep = "Na",inf_rep = "Na") to_csv时需设置sep参数 2、多个表写入同个文件多个数据表需同时写入一个文件时,需用到pandas的ExcelWriter df1=pd.read_excel(r'工作表.xlsx',nrows=5) df2=pd.read_excel(r'工作表.xlsx',nrows=5) writer = pd.ExcelWriter(r"工作表2.xlsx",engine = "xlsxwriter") df1.to_excel(writer,sheet_name = "例1",index=False) df2.to_excel(writer,sheet_name = "例2",index=False) writer.save() 输出结果存在多个sheet页 用columns参数来定义列名,或者用index来定义行索引 df = pd.Dataframe(data=['a','b','c','d', 'e'],
columns=['f'],index=['A','B','C','D','E'])
对应的也可以用嵌套的列表进行创建,这样columns参数就不止一个了 2、使用字典创建Dataframe字典样式: dict = {key1 : value1, key2 : value2, key3 : value3}
创建: df2=pd.Dataframe({'key1' : ['value1','value2'], 'key2' :['value1','value2'], 'key3' :['value1','value2']})
df2
五、对应EXCEL
Python相关栏目本月热门文章
热门相关搜索
路由器设置
木托盘
宝塔面板
儿童python教程
心情低落
朋友圈
vim
双一流学科
专升本
我的学校
日记学校
西点培训学校
汽修学校
情书
化妆学校
塔沟武校
异形模板
西南大学排名
最精辟人生短句
6步教你追回被骗的钱
南昌大学排名
清朝十二帝
北京印刷学院排名
北方工业大学排名
北京航空航天大学排名
首都经济贸易大学排名
中国传媒大学排名
首都师范大学排名
中国地质大学(北京)排名
北京信息科技大学排名
中央民族大学排名
北京舞蹈学院排名
北京电影学院排名
中国戏曲学院排名
河北政法职业学院排名
河北经贸大学排名
天津中德应用技术大学排名
天津医学高等专科学校排名
天津美术学院排名
天津音乐学院排名
天津工业大学排名
北京工业大学耿丹学院排名
北京警察学院排名
天津科技大学排名
北京邮电大学(宏福校区)排名
北京网络职业学院排名
北京大学医学部排名
河北科技大学排名
河北地质大学排名
河北体育学院排名
|
|---|



