python如何导入表格(python如何导入表格数据绘制图形)
1 如何用Python导入Excel以及csv数据集
Excel是一个二进制文件,它保存有关工作簿中所有工作表的信息
CSV代表Comma Separated Values 。这是一个纯文本格式,用逗号分隔一系列值
Excel不仅可以存储数据,还可以对数据进行操作
CSV文件只是一个文本文件,它存储数据,但不包含格式,公式,宏等。它也被称为平面文件
Excel是一个电子表格,将文件保存为自己的专有格式,即xls或xlsx
CSV是将表格信息保存为扩展名为.csv的分隔文本文件的格式
保存在excel中的文件不能被文本编辑器打开或编辑
CSV文件可以通过文本编辑器(如记事本)打开或编辑
excel中会有若干个表单,每个表单都会这些属性:?
行数(nrows) 列数(ncols) 名称(name) 索引(number)?
import xlrd //执行操作前需要导入xlrd库?
#读取文件?
excel = xlrd.open_workexcel("文件地址") //这里表格名称为excel,文件的地址可以从文件的属性中看到?
#读取表格表单数量?
sheet_num= excel.nsheets // sheet_num为变量,其值为表格表单数量?
#读取表格表单名称?
sheet_name = excel.sheet_names() // sheet_name为变量,其值为表格表单名称?
#如果想要看到上述两个变量,可以使用print()函数将它们打印出来?
#想要读取某个表单的数据,首先获取表单 excel.sheet_by_index(0)?
//表单索引从0开始,获取第一个表单对象 excel.sheet_by_name('xxx')?
// 获取名为”xxx”的表单对象 excel.sheets()?
// 获取所有的表单对象 获取单元格的内容:使用cell_value 方法 这里有两个参数:行号和列号,用来读取指定的单元格内容。?
第一行的内容是:sheet.row_values(rowx=0)?
第一列的内容是:sheet.col_values(colx=0)
CSV是英文Comma Separate Values(逗号分隔值)的缩写,文档的内容是由 “,” 分隔的一列列的数据构成的。在python数据处理中也经常用到。
import csv //执行操作前需要导入csv库?
#csv读取?
遍历其中数据 csv_file = csv.reader(open(‘文件地址’,’r’)) for x in csv_file print(x)
怎么用python读取txt文件里指定行的内容,并导入excel?
全文使用的是xlswriter模块写的,也有人使用?xlrd与?xlutils模块实现,不过还未进行验证
import xlsxwriter
workbook = xlsxwriter.Workbook("D:\\Program Files\\subpy\\sql2.xlsx")#在指定目录下创建一个excle
worksheet = workbook.add_worksheet("students")#新建一个sheet
title_index = ["A","B","C","D"]#sheet中的区域
li = [] #定义一个空列表
blod = workbook.add_format({"bold":True})#定义exlce中写入的字体with open("D:\\Program Files\\subpy\\tets.txt",'r') as f1:#打开txt文档
lines = f1.readlines()#读取所有行内容
n = -1#定义一个变量
for x in lines:#逐行读取
n=n+1
li.append(x[:-1])#去掉回车符
y= x.split#以空格分字符
for i in range(len(title_index)):#读取excle区域下标
# for i,j in enumerate(title_index):
content = y[i]#单个字符读取
worksheet.write(n,i,content,blod)#分行分列写入workbook.
close#关闭excle
txt文件可以用行号,用readlines读取出来的数据是一个列表,你可以使用:
f = open('', 'r')
line = f.readlines()
line_need = line[行号-1]
这样来取指定行
怎么通过nrows参数导入数据
1、导入excel表格数据
Excel有两种格式,分别为xls和xlsx格式,两种都可以用python的Pandas模块的read_excel方法导入。read_excel方法返回的结果是DataFrame,DataFrame的一列对应着Excel的一列
read_excel方法参数介绍:
(1)sheet_name参数:该参数用于指定导入Excel中的哪一个sheet,如果不填写这个参数,则默认导入第一个sheet
(2)index_col参数:该参数用于指定表格的哪一列作为DataFrame的行索引。从0开始计数
(3)nrows参数:该参数可以控制导入的行数,该参数在导入文件体积较大时比较有用
(4)skipfooter参数:该参数可以在导入数据时,跳过表格底部的若干行
(5)header参数:当使用Pandas的read_excel方法导入Excel文件时,默认表格的第一行为字段名。如果表格的第一行不是字段名。则需要使用该参数设置字段名
(6)usecols参数:该参数可以控制导入Excel表格中的哪些列
(7)names参数:该参数可以对导入数据的列名进行重命名
import pandas as pd# 导入pandas模块并将其缩写
df=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx")#使用该方法导入数据
df
登录后复制
括号里为本地表格地址,可以通过查看属性进行获取,注意地址的分隔符时反斜杠
df1=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx",index_col=0)
df1
#取消行索引
登录后复制
df2=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx",nrows=5)
df2
#导入前五行
登录后复制
df3=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx",header=None)
df3
#取消表格第一行为默认表头,以0123···为表头
登录后复制
df4=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx",header=None,name=['A','B','C','D','E'])
df4
#取消表格第一行为默认表头,以ABCDE为表头
登录后复制
df5=pd.read_excel("",header=None,names={'A','B','C','D','E'},usecols=[1,3])
df5
#索引为1和3,也就是第二列和第四列
登录后复制
2、导入CSV格式数据
read_csv方法中的sep参数表示要导入的csv文件的分隔符,默认是半角逗号。encoding参数用来指定CSV文件的编码,常用的有utf-8h和gbk
import pandas as pd
df1=pd.read_csv("",sep=",",encoding="gbk")
df1
登录后复制
df2=pd.read_csv("",sep=",",encoding="gbk",nrows=3)
df2
#只导入前三行
登录后复制
df4=pd.read_csv("",sep=",",encoding="gbk",names=["ID","fruit","amount"])
df4
登录后复制
3、导入JSON数据
JSON数据是一种轻量级的数据交换格式,容易阅读,也容易被机器扫描,在互联网应用中很常见,有时候从后台系统中导出来的数据就是JSON格式
JSON文件实际上存储的是一个JSON对象或者一个JSON数组,JSON对象是由多个键值对组成的,类似python的字典,JSON数组由多个JSON对象组成,类似列表
import pandas as pd
json=pd.read_json("路径")
json
登录后复制
4、导入txt格式数据
使用read_table方法,参数和用法与read_csv类似
import pandas as pd
df1=pd.read_table("路径")
df1
登录后复制
5、导入(爬取)网络数据
在数据分析中,除了可以导入文件和数据库中的数据,还有一类非常重要的数据就是网络数据,网络中每天都会产生大量数据,这些数据具有实时性,种类丰富的特点,因此对于数据分析而言是十分重要的一类数据来源
关键技术:爬取网络表格类数据,pandsa库read_html()方法
read_html()方法用于导入带有table标签的网页表格数据,使用该方法前,首先要确定网页表格数据是否为table标签。右击网页中的表格查看元素
确定后才可以使用read_html的方法
常用参数说明如下
io:字符串,文件路径,也可以是URL连接,网址不接受https,可以尝试去掉s后爬取
header:指定列标题所在的行
index_col:指定列标题所在的行
index_col:指定行标题对应的列
【例】 爬取A股公司营业收入排行榜
中商情报网是专业的产业情报分享云平台,主要提供研究报告、行业分析、市场调研等数据。在本案例中,通过爬取中商情报网中A股公司营业收入排行榜表格获取相应的金融数据,数据网址为
import pandas as pd
url=""
df=pd.read_html(url)[0]#索引为0
print(df)
登录后复制
0 1 2 3
0 排名 股票代码 企业简称 营业收入(亿元)
1 1 600028 中国石化 27408.84
2 2 601857 中国石油 26143.49
3 3 601668 中国建筑 18913.39
4 4 601318 中国平安 11804.44
5 5 601390 中国中铁 10704.17
6 6 601186 中国铁建 10200.10
7 7 601398 工商银行 9427.62
8 8 601628 中国人寿 8585.05
9 9 600941 中国移动 8482.58
10 10 601939 建设银行 8242.46
登录后复制
?
2.2输出数据
1、CSV格式数据输出
【例】导入sales.csv文件中的前10行数据,并将其导出为sales_new.csv文件
关键技术:pandas库中的to_csv方法
在该例中,首先通过pandas库的read_casv方法导入sales.csv文件的前十行数据,然后使用pandas库的to_csv方法将导出的数据输出为sales_new.csv文件
import pandas as pd
df=pd.read_csv("地址",sep=","encoding="gbk",nrows=10)
df.to_csv('sales_new.csv',encoding="gbk")
登录后复制
pandas库的to_csv方法,参数说明:
path_or_buf:要保存的路径及文件名
sep:分割符,默认为","
columns:指定要输出的列,用列名,列表表示,默认值为None
header:是否输出列名,默认值为True
index:是否输出索引,默认值为True
encoding:编码方式,默认值为"utf-8" 也可以是gbk
【例】对于上一小节中的问日,如销售文件格式为:sales.xlsx文件,如何处理
关键技术:DataFrame对象的to_excel方法
与上例相似,该例首先利用Pandas库的read_excel方法读入sales.xlsx文件,然后使用to_excel方法导出新文件
import pandas as pd
df=pd.read_excel("地址")
df1=df.head(10)
df1.to_excel('sales_new.xlsx',encoding="gbk")
登录后复制
2、xlsx格式数据输出
对于Pandas库中的to_excel()方法,有下列参数说明
sheet_name:字符串,默认值为"sheet1",指包含DataFrame数据的表的名称
np_rep:字符串,默认值为’'。指缺失数据的表示方式
columes:序列,可选参数,要编辑的列
header:布尔型或字符串列表,默认值为True。如果给定字符串列表,则表示它是列名称的别名
index:布尔型,默认值为True 行名(索引)
index_label:字符串型或序列,默认值为None。如果文件数据过多的使用多索引,则需使用序列
encoding:指定Excel文件的编码方式,默认值为None
3、导入到多个sheet页中
【例】将sale.xlsx文件中的前十行数据,导出到sales_new.xlsx文件中名为df1的sheet页中将后五行数据导出到名为df2的sheet页中
首先建立df1/df2sheet页,然后使用pd.ExcelWriter方法打开sales_new.xlsx文件,再用to_excel方法导入到指定的sheet页中
如何将python导入excel,设置字号
将txt
文件导入python代码:
import
pandas
as
pd
path='1.txt'
data=pd.read_csv(path,sep='\t')
想要”优雅“导入,建议使用pandas,matplotlib:
import
pandas
as
pd
data
=
pd.read_csv("aaa.csv")
data.columns
#查看表格有哪些列,可以看到有x,
y,
z列
data['x']
#查看x列
data['y']
#查看y列
data['z']
#查看z列
import
matplotlib.pyplot
as
plt
plt.bar(data['x'],
data['y'])
#画柱状图
plt.title('example')
#设置标题
plt.xlabel('x')
#横坐标加说明文字'x'
plt.ylabel('y')
#纵坐标加说明文字'y'
plt.show()
#显示图形
新手学习Python,求教Python中如何导入excel数据
读excel要用到xlrd模块,官网安装()。然后就可以跟着里面的例子稍微试一下就知道怎么用了。大概的流程是这样的:
1、导入模块
import xlrd
2、打开Excel文件读取数据
data = xlrd.open_workbook('excel.xls')
3、获取一个工作表
① table = data.sheets()[0] #通过索引顺序获取
② table = data.sheet_by_index(0) #通过索引顺序获取
③ table = data.sheet_by_name(u'Sheet1')#通过名称获取
4、获取整行和整列的值(返回数组)
table.row_values(i)
table.col_values(i)
5、获取行数和列数
table.nrows
table.ncols
6、获取单元格
table.cell(0,0).value
table.cell(2,3).value
就我自己使用的时候觉得还是获取cell最有用,这就相当于是给了你一个二维数组,余下你就可以想怎么干就怎么干了。得益于这个十分好用的库代码很是简洁。但是还是有若干坑的存在导致话了一定时间探索。现在列出来供后人参考吧:
1、首先就是我的统计是根据姓名统计各个表中的信息的,但是调试发现不同的表中各个名字貌似不能够匹配,开始怀疑过编码问题,不过后来发现是因为空格。因为在excel中输入的时候很可能会顺手在一些名字后面加上几个空格或是tab键,这样看起来没什么差别,但是程序处理的时候这就是两个完全不同的串了。我的解决方法是给每个获取的字符串都加上strip()处理一下。效果良好
2、还是字符串的匹配,在判断某个单元格中的字符串(中文)是否等于我所给出的的时候发现无法匹配,并且各种unicode也不太奏效,百度过一些解决方案,但是都比较复杂或是没用。最后我采用了一个比较变通的方式:直接从excel中获取我想要的值再进行比较,效果是不错就是通用行不太好,个呢不能问题还没解决。
二、写excel表
写excel表要用到xlwt模块,官网下载()。大致使用流程如下:
1、导入模块
复制代码代码如下:
import xlwt
2、创建workbook(其实就是excel,后来保存一下就行)
复制代码代码如下:
workbook = xlwt.Workbook(encoding = 'ascii')
3、创建表
复制代码代码如下:
worksheet = workbook.add_sheet('My Worksheet')
4、往单元格内写入内容
复制代码代码如下:
worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
5、保存
复制代码代码如下:
workbook.save('Excel_Workbook.xls')
Python操作Excel
因为工作上的需要,最近经常用Python对报表做Excel导入导出,特此做个笔记,方便日后查看。
首先我选择了Python-Excel下的xlrd和xlwt。需要注意的是,xlwt只支持生成xls,暂时还不支持xlsx。
读取主要是用到这两个方法,我想到就继续补充,更多用法请查阅官方文档
表格样式设置有XFStyle和easyxf两种方式
列宽在Excel里面用字符宽带来表示。xlwt以字符'0'的1/256宽为一个单位,默认表格宽度为2962,大致相当于11个字符宽度。设置Excel的列宽就大致等于,字符宽度 * 256 + 182 (有待继续考证,精度目前还行)
行高再Excel里面一般用磅来表示,磅 * 20 即是xlwt的数值。字体的大小也是用磅来设置。
设置页面方向
使用num_format_str来设置单元格类型。
特别是遇到时间的时候,Excel会自动转为May-2017这种格式,这时候就要设置为文本类型,防止自动转换