本文目錄一覽:
python–pandas合併與連接
append 方法根據行在原數據框添加新的數據框。
如果想要合併後的數據框索引重寫排序,可以設置參數 ignore_index=True 。
concat 函數是panda自帶的,可以按行或按列合併多個pandas數據框。
按行合併多個數據框,需要注意的是 objs參數接受一個可迭代對象 。concat函數默認按行合併。
設置 ignore_index=True ,使合併後的數據框索引重新排序。
按行合併時,concat對所有的列進行全連接(參數 join=’outer’ ),沒有的列會填充為NaN。
設置參數 join=’inner’ ,可以只保留共有的列。
設置參數 axis=1 或 axis=’columns’ ,可以按列合併多個數據框。
merge 方法根據列或索引連接數據框。
當兩個數據框只有一個相同列時, merge 方法會自動根據相同列進行內連接, on 參數可以省略。
設置參數 how=[‘left’,’right’,’outer’,’inner’,’cross’] ,可以完成不同類型的連接。
當兩個數據框沒有相同列時,需要設置 left_on 和 right_on 參數,表示按這兩列進行連接。
如果需要根據數據框的索引進行連接,需要根據需求設置參數 left_index=True 或者 right_index=True 。
設置 suffixes ,可以給相同的列名添加後綴。默認後綴是 _x , _y 。
join 方法與 merge 方法作用相同,基本上 merge 方法已經可以完成所有的連接操作。
join 方法對按索引連接更方便而已。
當連接的兩個數據框中沒有相同列時,可以直接按索引進行左連接。
同樣,可以設置 how 參數,控制連接的行為。
當數據框中有相同列時,需要設置後綴。
python合併多個EXCEL表
在日常工作中經常回用到數據分析與統計工作,而在實施數據分析之前,最為最要的就是數據的搜集、整理工作。這裡介紹一下多個相同格式的excel合併的處理。如果在excel文件表比較少時,手工合併還可以應付,當幾十個幾百個甚至更多的表時,手工合併效率會非常低,於是讓計算機自動合併處理,幫助我們完成工作就顯得非常有必要。
比如,在“2019年集團大學生招聘”下有兩個表格,想要實現的是將這兩個表格數據合併。
各個表中的數據格式如下圖:
結果:
有時候表格存放在文件夾下,現在需要將不同文件夾下的表格合併,此時需要對程序進行簡單的修改。
文件目錄結構如下:
在此之前需要先了解一下os模塊中的walk方法:
結果:
注意:os.walk()方法,它可以查詢到目錄下不同文件夾中的文件。其中,x代表的是文件路徑,y代表的是目錄下的文件夾,z代表的是目錄下的文件。
結果:
最後,需要注意,以上只是一個簡單的程序,對於數據量不是很大的場景,可以放心使用。但當數據量非常大時,程序還需要進一步優化,因為程序是將所有的數據保存在一個列表中,最後再一次性寫入excel表中,這裡需要考慮excel版本是否支持大數據量的寫入,另外,也要考慮程序資源消耗的問題,內存可能不足。
針對不同場景的Python合併多個Excel方法
大家好,我是辰哥~
在辰哥看來,技術能夠減少繁瑣工作帶來的枯燥,技術+實際=方便。最近辰哥也是在弄excel文件的時候發現手動去整理有點繁瑣枯燥,想着技術可以代替我去處理這部分繁瑣的工作那何樂而不為呢~~~
辰哥目前想到的僅是辰哥遇到的這三種情況( 如果還有很多其他情況的,歡迎在下方留言 ,因為辰哥日常非經常涉及多種excel處理的內容,所以想不到其他情況)
這裡辰哥先新建三個excel文件:11.xlsx;12.xlsx;13.xlsx;並往裡填充數據,數據如下:
需求:將這三個excel文件合併到一個excel中。
這裡需要用到兩個庫: xlrd讀取excel; xlwt寫入到合併的excel;
定義合併哪些excel文件,以及合併後的excel
最後合併到:**合併1_辰哥.xlsx **中,其結果如下:
新建三個excel文件:21.xlsx;22.xlsx;23.xlsx;並往裡填充數據
將這三個excel文件拼接帶一個excel中(從左往右)
最後合併到:**合併2_辰哥.xlsx **中,其結果如下:
新建一個excel文件:31.xlsx;並新增 sheet1、sheet2、sheet3 ,往裡填充數據
將同一個excel文件中的這三個sheet併到一個sheet中。
最後合併到: 合併3_辰哥.xlsx 中,其結果如下:
目前想到的僅是辰哥遇到的這三種情況( 如果還有很多其他情況的,歡迎在下方留言 ,因為辰哥日常並非經常涉及多種excel處理的內容,所以想不到其他情況)
Python如何合併多個裝飾器?教你幾個小技巧
Python如何合併多個裝飾器?教你幾個小技巧
django程序,需要寫很多api,每個函數都需要幾個裝飾器 ,例如
複製代碼 代碼如下:
@csrf_exempt
@require_POST
def foo(request):
pass
既然那麼多個方法都需要寫2個裝飾器,或者多個,有啥辦法把多個合併成一行呢?
上面的函數執行過程應該是
複製代碼 代碼如下:
csrf_exempt(require_POST(foo))
修改成
複製代碼 代碼如下:
def compose(*funs):
def deco(f):
for fun in reversed(funs):
f = fun(f)
return f
return deco
函數改寫成
複製代碼 代碼如下:
@compose(csrf_exempt, require_POST)
def foo(request):
pass
參考:
Can I combine two decorators into a single one in Python
;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/193833.html