實戰Python讀寫Excel實例應用
前言
前面我們學習了簡單的Python操作Excel的兩個庫xlrd和xlwt,今天來實際操作一個案例來增強實戰功能。
案例背景
我們市場部的同學想通過分析廣告投放時間前後(分鐘級,前1分鐘到後5分鐘)的用戶活躍數據來分析我們廣告的投放效果,來決定是否繼續投放和投放的其他選擇性,所以他們需要我來幫忙計算一下數據。所以這裡分享下實際操作。
數據準備
1、 廣告播放時間
這裡的廣告播放時間文件為ad.xlsx,由市場部同學提供,部分數據如下。
2、 用戶活躍數據
數據計算
數據準備完畢之後,就可以直接計算了,因為前面已經說過xlrd和xlwt庫的使用,這裡直接貼上代碼py_excel.py,大家可以實際操作試一試。(為了更好的查看代碼,可以訪問原文,這裡的編輯器只能塊引用)
#coding:utf-8
import xlrd
import xlwt
import re
import sys
import string
from datetime import datetime
#read the ad play time data
programFile = r"ad.xlsx"
#讀取廣告播放時間數據文件
adFile = r"ad.xlsx"
#打開文件並獲取數據
adWb = xlrd.open_workbook(adFile)
adSheet = adWb.sheet_by_index(0)
#獲取目標時間列(在第3列,由日期和時間拼接而成)
adTime = adSheet.col_values(2)
lenth_of_time = len(adTime)
#讀取uv數據
uvWb = xlrd.open_workbook(uvFile)
#數據存儲在一張表時,如果有多個sheet,要分開賦值
uvSheet = uvWb.sheet_by_index(0)
uvTime = uvSheet.col_values(0)
length = len(uvTime)
#初始化寫操作
resultFile = xlwt.Workbook()
#在生成表的時候添加了兩張sheet
resultMobile = resultFile.add_sheet("mobile",cell_overwrite_ok=True)
resultPC = resultFile.add_sheet("PC",cell_overwrite_ok=True)
i=1
while(i
print (i)
playTime = xlrd.xldate_as_tuple(adTime[i],adWb.datemode)
print (playTime)
j= 1
while(j
uvRow = uvSheet.row_values(j)
uvTime = xlrd.xldate_as_tuple(uvRow[0],uvWb.datemode)
#時間匹配
if((playTime[0]==uvTime[0] and playTime[1]==uvTime[1] andplayTime[2]==uvTime[2] and ((playTime[3]==uvTime[3] and uvTime[4]-playTime[4]>-2and uvTime[4]-playTime[4]-2 and uvTime[4]+60-playTime[4]
gap = uvTime[4]-playTime[4]
if(gap
gap=gap+60
if(gap==59):
gap=-1
if(uvRow[1]=="mo"):
resultMobile.write(i,gap+1,uvRow[2])
if(uvRow[1]=="pc"):
resultPC.write(i,gap+1,uvRow[2])
j = j + 1
i= i + 1
#保存結果
resultFile.save(r"result.xls")
查看結果:
首行數據表示分鐘。
小結
上面就是今天的主題內容了,今天分享下如何使用Python操作Excel進行讀寫文件生成目標數據,方便後面進行數據分析。希望通過上面的操作能幫助大家。如果你有什麼好的意見,建議,或者有不同的看法,我都希望你留言和我們進行交流、討論。
想要系統學習python和免費學習資料的 可以加裙 四七四五三四九五一
※神經網路理論基礎及 Python 實現
※10年Python大牛傾力打造系統Python學習流程圖!
※5 個很好的 Python 面試題
※Python 協程
※數據專家必知必會的7款Python工具
TAG:Python |
※Mysql8.0主從搭建,shardingsphere+springboot+mybatis讀寫分離
※Python讀寫Excel表格,就是這麼簡單粗暴又好用
※用fread和fwrite讀寫文件
※python後台架構Django——連接讀寫mysql資料庫
※mysql+mycat實現主從複製、讀寫分離
※SpringBoot 玩轉讀寫分離
※Multi Actuator多讀寫臂技術,新的性能突破
※提升Hive操作Amazon S3讀寫數據的性能
※希捷提出Multi Actuator技術,以多一組讀寫臂的方式增加存取效率
※文石BOOX Note Pro和Nova Pro電紙書正式發布:讀寫全能帶前光
※MapReduce數據序列化讀寫概念淺析!
※DuangDuangDuang,黨禺書法藝術叢書《讀寫經典》正式上線了!
※索尼推出Ultra-Tough系列三防SSD移動硬碟:最高讀寫速度1000MB/s
※ModBus用戶自定義文件讀寫功能
※威剛發布512GB microSD存儲卡:讀寫速度不俗
※Centos 7利用內存優化磁碟緩存讀寫速度
※Mushkin推出新款M.2 SSD:主打性價比 連續讀寫500MB/s
※mysql主從複製與讀寫分離示例
※Realtek首發SD 7.0主控:最大容量128TB、讀寫1GB/s
※Realtek首發SD 7.0主控:最大容量128TB、讀寫1GB/s