自動合併Excel的4種方法,pandas自動化辦公,YYDS

語言: CN / TW / HK

大家好,這裏是程序員晚楓。

上次我們通過閲讀源碼,分享了:官方推薦:6種Pandas讀取Excel的方法,太方便了~

今天我們繼續閲讀源碼,學一個實用技巧:如何2個excel裏的合併數據?

每個方法都配了一張合併效果圖,建議小白直接看圖,有不理解的再配合文字閲讀。

以下方法,按照從易到難排序。有些方法文字描述起來比較抽象,但看圖一定可以秒懂~

一、源碼解析

通過研究源碼可以發現,除去被淘汰的append方法,目前通用的合併方法一共有4個,

  • concat、merge,來自源碼的./pandas/core/reshape文件夾,是pandas本身可以調用的;
  • join、combine,來自源碼的./pandas/core/frame.py文件,是隻能由dataframe調用的。

每種方法都有複雜的用法,本文主要是入門引導性説明。

所以每種方法只給大家介紹一個最容易理解的效果,如果想深入學習,可以在評論區進行討論~

二、方法説明

1、concat

對2個有着相同列名的excel表格,進行上下拼接式的合併。

應用場景

當我想把自己所有平台賬號的基本信息,彙總到一個表格裏。如下圖所示,一行代碼完成合並。👇

append(已經被淘汰了!!)

這個方法很多文章都在介紹。

其實它和concat效果一模一樣,而且pandas官方在源碼裏明確提示了:這個方法即將在新的pandas版本里淘汰,不要使用了,請直接使用concat方法。

FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.

下次再看到有介紹pandas用append方法進行合併的文章,你知道該怎麼做了吧?

2、merge

merge合併稍微複雜一點。

我們舉個簡單的例子:

在同一行裏,羅列出我所有平台的關注數,如下圖所示。👇

merge更關心列之間的合併。

3、join

如上文所述,join是對數據的精細化操作。

例如我有的文件有2行,有的文件有1行,但是他們的格式是一樣的,我想對它們進行橫向的拼接。有些文件沒有第2行的情況下,自動填充空白,方便我的後續操作。如下圖所示👇

join更關心行之間的合併。

4、combine

這是一個最複雜的方法,因為它需要在合併時進行計算。

例子

我想看一下哪天的微博瀏覽量最少,於是在合併的同時,進行了大小比較的計算。如下圖所示👇combine在合併的同時,對數據列進行了比較、計算。

三、寫在最後

以上就是使用pandas進行合併的4個常用方法了。

近期還會發布若干個1行代碼合併Excel的極簡操作,大家可以關注一下我,收到最新消息。