Python,将数据存储于Excel表格的应用方法

Python将爬取的数据导入Excel的过程

这是同学们常常会遇到的问题,将手头上的一些数据,便捷的生成Excel表格,方便存储、调用、作图等等

方法一

通过利用pandas中的方法将字典列表中的数据存储于Excel中
使用二维列表时常常用到方法一

引入库,使用库中的DataFrame

import pandas as pd
data = pd.DataFrame(data = , columns = )

pandas官网: https://pandas.pydata.org/pandas-docs/stable/index.html

操作方法

创建DataFrame
用字典创建
 >>> data1 = {'学号':['001','002','003'],'姓名':['甲','乙','丙'],
         '平时成绩':[82,72,50],'笔试成绩':[78,71,32],'上机成绩':[78,71,32]}
         
 >>> pd.DataFrame(data1)
    学号 姓名  平时成绩  笔试成绩  上机成绩
0   00182       78       78
1   00272       71       71
2   00350       32       32

# 使用columns
 >>> pd.DataFrame(data1, columns=('姓名','学号','上机成绩','平时成绩','笔试成绩'))
  姓名   学号  上机成绩  平时成绩  笔试成绩
0001   78       82       78
1002   71       72       71
2003   32       50       32

# 使用index
>>> pd.DataFrame(data1, index=('No1','No2','No3'))
      学号 姓名  平时成绩  笔试成绩  上机成绩
No1   00182       78       78
No2   00272       71       71
No3   00350       32       32

# 加一列
>>> data = pd.DataFrame(data1)
>>> data['总成绩'] = data['平时成绩']*0.4+data['笔试成绩']*0.3+data['上机成绩']*0.3
>>> data
    学号 姓名  平时成绩  笔试成绩  上机成绩   总成绩
0   00182       78       78         79.6
1   00272       71       71         71.4
2   00350       32       32         39.2
用列表创建
>>> data2 = [['001','甲',82, 78, 78],['002','乙',72,71,71],['003','丙',50,32,32]]

>>> pd.DataFrame(data2, columns=('学号','姓名','平时成绩','笔试成绩','上机成绩'))
    学号 姓名  平时成绩  笔试成绩  上机成绩
0   00182       78       78
1   00272       71       71
2   00350       32       32
切片和索引
  • loc,即location,根据行/列名索引
  • iloc,这个i可以理解成integer,根据行/列号索引

只能用loc/iloc

>>> data1 = {'学号':['001','002','003'],'姓名':['甲','乙','丙'],
         '平时成绩':[82,72,50],'笔试成绩':[78,71,32],'上机成绩':[78,71,32]} 
>>> data = pd.DataFrame(data1)
>>> data.index = ["C1","C2","C3"]

>>> data.loc["C2":"C3"]
     学号 姓名  平时成绩  笔试成绩  上机成绩
C2   00272       71       71
C3   00350       32       32
---------------------------------------
>>> data.loc[["C1","C3"]]
     学号 姓名  平时成绩  笔试成绩  上机成绩
C1   00182       78       78
C3   00350       32       32
---------------------------------------
>>> data.iloc[0:2]
     学号 姓名  平时成绩  笔试成绩  上机成绩
C1   00182       78       78
C2   00272       71       71

# 根据值查找行索引
>>>data.[data['姓名']=='甲'].index
C1

可以直接根据列名。或者使用loc/iloc

>>> data['name']
C1    甲
C2    乙
C3    丙
----------------------------------
>>> data.loc[:,["姓名","笔试成绩"]]
    姓名  笔试成绩
C1  甲    78
C2  乙    71
C3  丙    32
----------------------------------
>>> data.iloc[:,0]
C1    001
C2    002
C3    003

Excel读取与写入
读取

read_excel()参数:

  • name: excel文件名.xlsx
  • sheet_name: 设置读取的 sheet 名
df = pd.read_excel("weather.xlsx",sheet_name="sheet1")
写入

to_excel()参数:

  • sheet_name: 设置sheet名
  • index:设置sheet序号,默认0
df.to_excel(sheet_name='sheet1',startcol=0,index=False)

方法二

采用Workbook类,直接对Excel进行操作

引入Workbook

from openpyxl import Workbook

创建工作簿和工作表

# 创建工作簿
book = Workbook()
# 创建工作表
sheet = book.create_sheet()

其中create_sheet()参数:

  • title:设置工作表的名字
  • index:选中第几个工作表(从0开始)

向工作表中添加数据和保存数据

其实可以把工作表当做我们的列表来使用
所以有以下用法

# 向工作表中添加数据
sheet.append(['职位名','公司名','工作地点','薪资','发布时间'])
    for item in data:
        row = [item['title'],item['company'],item['addr'],item['salary'],item['pubDate']]
        sheet.append(row)

 # 输出保存
    book.save('51job.xlsx')

总结

分别对比一下二者的特点适用场景:

DataFrameWorkbook
适用于二维数据,可以生成二维列表适用于需要直接对Excel表格进行操作
整理好数据在列表/字典中可以直接导入生成,一步到位可以直接把Workbook对象作为Excel操作,更多细微的操作

大家可以根据需要选择自己的方法,学会将数据通过Python导入Excel中是很有必要的一个技能,以后爬虫或者接单是很有帮助的。后续可以学习将数据上传数据库,有许多爬虫需求是需要做成Excel或者Csv给商家的,因为这种形式可以很好的方便整理数据和画图,直接使用Excel中的功能对数据应用,这样不会代码的人也能操作。

今天的分享就到这里啦,希望大家觉得有用的可以点个小小的赞。

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值