99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀教你用Python批量實現(xiàn)文件夾下所有Excel文件的第二張表合并
教你用Python批量實現(xiàn)文件夾下所有Excel文件的第二張表合并
2022-01-27
收藏

作者:Python進階者

來源:Python爬蟲與數(shù)據(jù)挖掘

問題:想向大佬們求教個問題,如果我有這樣的需求,如何完成:

1、將A文件中名為a的sheet和B文件中名為b的sheet合并到一個sheet中去。

2、將文件夾下所有文件的第二張表合并。我做出來了,核心部分沒有用pandas,而且邏輯比較繁瑣。想求一用pandas解決的簡潔方案。

1、解決思路

問題一和問題二的思路都挺常規(guī)的,就是取對應的表格,然后進行合并即可,這里仍然使用pandas來進行實現(xiàn)!

2、解決方法

問題一:將A文件中名為a的sheet和B文件中名為b的sheet合并到一個sheet中去。

這里基于之前【(這是月亮的背面)】提供的代碼,我稍微做了些修改,代碼如下:

# coding: utf-8 # 將A文件中名為a的sheet和B文件中名為b的sheet合并到一個sheet中去 from pathlib import Path import pandas as pd


path = r'E:PythonCrawler有趣的代碼Python自動化辦公將A文件中名為a的sheet和B文件中名為b的sheet合并到一個sheet中去' data_ex1 = pd.read_excel('ex1.xlsx', sheet_name='df1')
data_ex2 = pd.read_excel('ex2.xlsx', sheet_name='df2')
result = pd.concat([data_ex1, data_ex2], ignore_index=True)
result.to_excel('將A文件中名為a的sheet和B文件中名為b的sheet合并到一個sheet中去.xlsx', index=False, encoding='utf-8')
print('添加和合并完成!')

代碼運行之后,會生成一個新的excel文件,如下圖所示:

教你用Python批量實現(xiàn)文件夾下所有Excel文件的第二張表合并

合并的結(jié)果如下圖所示:

教你用Python批量實現(xiàn)文件夾下所有Excel文件的第二張表合并

完成之后,我發(fā)給【有點意思】大佬看,不過這個答案勉強符合他的意思,他后來自己也寫了一個代碼,能滿足自己的需求,這里發(fā)給大家看看。

教你用Python批量實現(xiàn)文件夾下所有Excel文件的第二張表合并

問題二:將文件夾下所有文件的第二張表合并

這里基于之前【(這是月亮的背面)】提供的代碼,我稍微做了些修改,代碼如下:

# coding: utf-8 # 合并所有表格中的第二張表格 from pathlib import Path import pandas as pd


path = Path(r'E:PythonCrawler有趣的代碼Python自動化辦公將文件夾下所有文件的第二張表合并')
data_list = [] for i in path.glob("*.xls*"): # data = pd.read_excel(i, sheet_name='df2') data = pd.read_excel(i, sheet_name=1)
    data_list.append(data)


result = pd.concat(data_list, ignore_index=True)
result.to_excel(path.joinpath('取所有excel表的df2表進行合并.xlsx'), index=False, encoding='utf-8')
print('添加和合并完成!')

代碼運行之后,會生成一個新的excel文件,如下圖所示:

教你用Python批量實現(xiàn)文件夾下所有Excel文件的第二張表合并

合并的結(jié)果如下圖所示:

教你用Python批量實現(xiàn)文件夾下所有Excel文件的第二張表合并

細心的小伙伴可能發(fā)現(xiàn)代碼中的第9行,我其實是注釋了,一開始我測試的表格,命名規(guī)則很有規(guī)范,每個工作簿都有df1,df2,df3三張表格,所以在合并的時候直接指定了表名,但是這樣寫就會有問題,萬一有個表格中沒有df2工作表,這個代碼肯定就會報錯了,所以在【(這是月亮的背面)】大佬的指導下,使用了sheet_name=1參數(shù),以索引來定位第二張表格,恰到好處,前提條件是你的Excel表格中必須要有第二張表格,否則就會出現(xiàn)下圖的錯誤。

教你用Python批量實現(xiàn)文件夾下所有Excel文件的第二張表合并

3、總結(jié)

我是Python進階者。本文基于粉絲針對Python處理Excel指定表格合并的提問,給出了一個利用Python基礎+pandas處理的解決方案。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }