1. 程式人生 > >【Python】pandas遍歷讀取excel檔案,修改並儲存(一)

【Python】pandas遍歷讀取excel檔案,修改並儲存(一)

code ide and lib version:

python            2.7(64)

pycharm            2018.1.4

xlrd            1.1.0

pandas            0.23.1

play:

這個是一個讀取excel表格裡的介面資料,例項化為一個物件,供操作,往事把一頓操作後的結果寫回到excel裡,完事。

look at the code:

#!usr/bin/env python  
# -*- coding:utf-8 -*-

""" 
@author: jayzhen
@email: [email protected]
@site: https://github.com/gitjayzhen @software: PyCharm & Python 2.7 @file: RequestBuilder.py @time: 2018/06/27 19:13 """ from com.framework.utils.fileUtil.FileInspector import FileInspector from com.framework.interface.domian.DataStruct import DataStructer from com.framework.interface.api.HttpClient import Requester import pandas as pd import re class RequestBuilder(object): def __init__(self): fc = FileInspector() self.filepath = None self.propath = None boolean = fc.is_has_file("介面測試用例集.xlsx") if boolean: self.filepath = fc.get_fileabspath() self.propath = fc.get_project_path() def data_mapping(self, source, obj): """ 將excel讀取的行資料,對映成一個操作物件,共測試報告使用 :param source: 讀取的excel row :param obj: domain資料物件 :return: obj """ if source is None: return None if isinstance(source, tuple) and isinstance(obj, DataStructer): obj_attr = dir(obj) for i in obj_attr: if i.startswith("__"): continue obj.__setattr__(i, source.__getattribute__(i)) return obj def send_req(self, ds): """ 將excel中的介面資料傳送出去 :param ds: domain物件 :return: None """ if ds is None: return None req = Requester() resp = req.execute_request(ds.req_method, ds.req_url) if re.findall(ds.resp_assert, resp.text): ds.test_result = resp.status_code ds.test_notes = str(resp.headers) def get_sheet_table(self): """ 需要處理的時將excel的內容讀出來和修改內容並儲存 :return: """ # 讀取一個excel的文字檔案(當前預設時讀一個檔案的一個sheet頁) ex = pd.read_excel(unicode(self.filepath, "utf8")) # 用pd格式化 df = pd.DataFrame(ex) # 迭代器遍歷sheet頁裡的內容 for row in df.itertuples(name="RowData"): # 例項化一個數據模型物件 ds = DataStructer() # 用讀到的excel行資料來填充這個物件 obj = self.data_mapping(row, ds) # 通過這個物件的屬性值,來發起一次request請求,在請求的過程把結果及校驗的資料處理完後, self.send_req(ds) print ds.__dict__ # 介面發起後的結果寫入到excel對應行的對應列中 # 執行修改操作 df.update(pd.Series(ds.test_result, name="test_result", index=[row.Index])) df.update(pd.Series(ds.test_notes, name="test_notes", index=[row.Index])) # 執行資料更新後的儲存操作:這裡有個問題就是原始檔覆蓋儲存,會沒有特定的樣式,需要再升級一下 df.to_excel(unicode(self.filepath, "utf8")) if __name__ == "__main__": rb = RequestBuilder() rb.get_sheet_table()

整個專案暫未開源,如有想法,可以交流交流

相關推薦

Pythonpandas讀取excel檔案修改儲存

code ide and lib version: python            2.7(64) pycharm            2018.1.4 xlrd            1.1.0 pandas            0.23.1 play:

Python例項方法、類方法、靜態方法之間區別

面相物件程式設計中,類方法和靜態方法是經常用到的兩個術語。 邏輯上講:類方法是隻能由類名呼叫;靜態方法可以由類名或物件名進行呼叫。 在C++中,靜態方法與類方法邏輯上是等價的,只有一個概念,不會混淆。 而在Python中,方法分為三類例項方法、類方法、靜態方法。程

原創源碼角度分析Android的消息機制系列——Android消息機制概述

run 權限 開發 等待 通過 讀取 概述 走了 color ι 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 1.為什麽需要Android的消息機制 因為Android系統不允許在子線程中去訪問UI,即Android系統不允許在子線程中更新UI。 為什麽不允許

轉載恢復誤刪文件--DOS命令應用實例

就是 開始 miss 幫助 屬於 三種 txt文件 意思 ron 《電腦愛好者》報轉載第一輯第二篇之恢復誤刪文件--DOS命令應用實例(一)

MPC5744PS32DS中Processor Expert自動生成程式碼工具使用教程 開發環境搭建

MPC5744P是NXP近幾年推出來的主打安全功能的雙核MCU,非常適合在汽車控制器相關產品中使用,非常強大。但是強大的同時,也意味著開發難度增大。 MPC5744P外設功能相關的暫存器非常之多,且對應的參考教程非常少,像STM32之類的工業MCU開發難度根本無法與之相比,早期只能依據官方參

更新Essential Studio for ASP.NET MVC更新至2018 v4

下載Essential Studio for ASP.NET MVC最新版本 Essential Studio for ASP.NET MVC控制元件包是一款MVC介面開發包,它包含了幾乎所有企業級Web應用程式開發所需要的控制元件,如Grids、 Charts、Gauges、Menus、Calenda

Java讀取Excel資料:基於Apache POI

Java讀取Excel資料:基於Apache POI(一) Java本身不支援直接讀取微軟的Excel表格資料。第三方的Apache提供了一個庫POI用以支援Java讀寫Excel表格資料。 首先需要到Apache官網下載POI的庫,下載連結地址:https://poi.apache.org

NLP揭祕馬爾可夫模型神祕面紗系列文章

作者:白寧超 2016年7月10日20:34:20 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句

NLP驀然回首:談談學習模型的評估系列文章

作者:白寧超 2016年7月18日17:18:43 摘要:寫本文的初衷源於基於HMM模型序列標註的一個實驗,實驗完成之後,迫切想知道採用的序列標註模型的好壞,有哪些指標可以度量。於是,就產生了對這一專題進度學習總結,這樣也便於其他人蔘考,節約大家的時間。本文依舊旨在簡明扼要梳理出模型評估核心指標,

mysql測試工程師需要學習的mysql知識-各種刪除方式

truncate,delect,drop的相同點和異同點: 相同點:  truncate 和不帶 where 子句的 delete,以及 drop 都會刪除表內的資料 不同點:  1.     truncate 和 delete 只刪除資料不刪除表的結構(定義)  drop

C 在單鏈表中插入一個新節點的嘗試

根據《C和指標》中講解連結串列的知識,記錄最終寫一個在單鏈表中插入一個新節點的函式的過程,這個分析過程十分的有趣,準備了兩篇博文,用於記錄這個過程。 連結串列是以結構體和指標為基礎的,所以結構體和指標是需要首先掌握的知識,掌握之後,最後要明白這個問題:結構體的自引用 這時

Bugzilla我按照bugzilla的官方指導進行的安裝。

Bugzilla 安裝Bugzilla 從TarBall Bugzilla download page (2.9MB). 在該下載頁面下載bugzilla。用windows的解壓工具解壓,我下載的是4.2.4. 將解壓後的檔案放在C:\Bugzilla. MySQL 下

原創新零售の從單體系統向微服務演變歷程

      “站在風口上,豬都會飛;然後風停止後,摔的最慘的就是豬”。   每個風口上,百舸爭流千帆競,借海揚帆奮者先。而最近幾年新零售、新物種、物聯網、智慧社群、區塊鏈等多元素,逐漸進入人們的生活,形成了這個時代最動人心絃的交響樂。   而新零售風口中,以

JAVA POI上傳excel檔案到資料庫備份

一、電商系統和辦公系統時常會用到Excel的匯入與匯出,在JAVA程式碼實現時,通常使用POI來處理,今天用一個demo為大家介紹POI上傳excel檔案並將資料匯入資料庫的實現過程。demo是一個jsp/servlet+maven的web專案。 二、環境:     資料庫

pythonpandas庫pd.read_excel操作讀取excel檔案引數整理與例項

除了使用xlrd庫或者xlwt庫進行對excel表格的操作讀與寫,而且pandas庫同樣支援excel的操作;且pandas操作更加簡介方便。 首先是pd.read_excel的引數:函式為: pd.read_excel(io, sheetname=0,he

pythonpandas庫pd.read_pickle操作讀取pickle資料與.to_pickle()永久儲存資料

之前總結了python的pickle庫的操作,儲存資料使用pickle.dump(obj, file, [,protocol]),將物件obj儲存到檔案file中去。使用pickle.load(file)從file中讀取一個字串,並將它重構為原來的python物

python利用pandas和xlrd讀取excel特征篩選刪除0值超過99%的列

print div 3.x += nco borde class value append 利用xlrd讀取excel篩選0值超過99%的列,並刪除import xlrdworkbook=xlrd.open_workbook(r"123.xlsx")table =

技術累積java28Map

兩種 bject amp urn 明顯 for object 一次 keyset Map遍歷 map的遍歷一般有幾種吧 遍歷entrySet for(Map.Entry<String,String> entry : map.entrySet()){

JavaMap的四種方法

關於java中遍歷map具體哪四種方式,請看下文詳解吧。 方式一 這是最常見的並且在大多數情況下也是最可取的遍歷方式。在鍵值都需要時使用。 1 2 3 4 Map<Integer, Integer> map = new HashM

JavascriptJS陣列的三種方法:map、forEach、filter

前言   近一段時間,因為專案原因,會經常在前端對陣列進行遍歷、處理,JS自帶的遍歷方法有很多種,往往不加留意,就可能導致知識混亂的現象,並且其中還存在一些坑。前端時間在ediary中總結了js原生自帶的常用的對陣列遍歷處理的方法,分別為:map、forEach、filter,在講解知識點的同時,會類比相識