帶你領略pandas中多表之間如何處理

但咱們在處理Pandas多表數據時,咱們須要將多個表之間進行表格的鏈接與合併,當鏈接完多表以後咱們可能還須要對數據進行多重的索引,方便咱們更快的找到數據,以及對數據進行作透視表,更加直觀的去觀察咱們的數據,今天咱們就圍繞着數據合併以及數據重塑及透視表進行展開講解,讓咱們去了解在Pandas中如何去這麼操做數據。數據庫

1、數據合併數組

一、鏈接表,app

在咱們得到數據的時候可能數據並不完整,而咱們須要將這些不完整的數據合併到一塊兒組成一個完整的數據,下面咱們對數據進行合併的操做。spa

  • 建立3個DataFrame表格

查看一下三個表的數據.net

  1. 將表格經過concat()方法進行合併

Concat參數以下3d

Objs(必須參數)對象

參與鏈接的pandas對象的列表或字典索引

Axisip

指名鏈接的軸向,默認爲0字符串

Join

選中inner或outer(默認),其餘軸向上索引是按交集(inner)仍是並集(outer)進行合併

Join_axes

指名用於其餘N-1條軸的索引,不執行並集/交集運算

Keys

與鏈接對象有關的值,用於造成鏈接軸向上的層次化索引。能夠是任意值的列表、數組、元組數組和數組列表(若是須要將levels設置成多級數組的話)

Levels

指定用做層次化索引各級別的索引,若是設置了keys的話

Names

用於建立分層級別的名稱,若是設置了keys或levels的話

Verify_integrity

檢查結果對象新軸上的重複狀況,若是發則引起異常。默認爲(false)容許重複

Ignore_index

不保留鏈接軸上的索引,產生一組新索引range

  • 經過keys參數設置鏈接df一、df二、df3的值爲x、y、z

  • 新增長一個df4表,橫向鏈接到df1表的第二、三、六、7列

  • 將df1和df4橫向進行交集合並

能夠看出,合併後的數據爲df1和df4都有的索引行進行合併的

  • 按照df1的索引進行df1表和df4表的橫向索引

  • 結果能夠看出合併是按照df1表的索引進行合併的。
  1. 經過append()方法鏈接表格
  • 鏈接df1和df2

  • 鏈接df1和df4表

能夠看出在合併的數據中原表中沒有的索引和列值都填充爲了NaN缺失值。

  • 鏈接df一、df二、df3表

  • 忽略鏈接軸上的上的索引

  • 新增長一個s1表,而且跟df1進行橫向合併

  • 新增長一個s2表,而且跟df1進行屢次鏈接

結果能夠看出,s2表中的數據並未肯定列名,那麼系統就自動的從0開始進行列名的名稱。

  • 表格合併後不保留原有的索引列名

表格合併後將原有的列名所有替換爲一個range()序列

1.三、附加行

結尾能夠看出,合併後將s2中的數據做爲附加行跟在了df1表的後面

二、數據庫風格的DataFrame鏈接/合併

2.一、單個鍵進行鏈接

  • 建立兩個表格並查看

  • 將key做爲兩個錶鏈接的中介

2.二、多個鍵進行鏈接

  • 建立兩個表格,而後將表格以Key1和key2做爲中介進行鏈接

能夠看出左右表以共同存在的key一、key2的行做爲取出元素的依據,只取出了前三行,left表中的第四行爲k二、k1,right表中的第四行爲k二、k0,並不匹配因此沒有進行取值。

  • 以左表爲主導進行鏈接,鏈接以key1,key2做爲鏈接中介進行取值

能夠看出此次鏈接是以left表彙總的key1 、key2做爲主鍵進行鏈接,right表中的不存在的主鍵元素則以NaN代替。

  • 以右表的key一、key2位主鍵進行鏈接

  • 以兩個表全部的key一、key2的元素都取出來

image

  • 當兩個表列名相同時進行合併

列名相同時則會從新命名列名

2.三、合併指示符

  • 以並集進行合併

也可使用字符串做爲參數替代True,字符串會做爲該列的列名稱。

2.四、經過索引進行鏈接

  • 經過左表索引鏈接右表

  • 左錶鏈接右表,求並集的形式

  • 左表連右表,求交集的形式

2.五、經過索引和某列鏈接

經過結果能夠看出,right表中的數據重複了一遍。

2.六、重疊列名稱的合併

2.七、數據框拼接

若是都存在的值以傳入的數據爲準

2、數據重塑及透視表

一、多重索引

  • 建立表格並查看

  • 查看animal和hair_length下的全部數據

或者以一級標題或二級標題進行查看

  • 建立表格並查看

使用level參數進行調用

  • 查看exp下面的屬性值

  • 查看anmal下面的屬性值

  • 調用數據

  • 調用first數據

  • 調用second數據

二、透視表

  • 建立一個透視表

  • 查看D列,索引爲A,B,列爲C的全部數據

  • 查看D列,索引爲B,列爲A,C的全部數據求和

  • 查看DE列,索引爲B,列爲A,C的求和數據

  • 查看索引爲A,B,列爲C的數據

相關文章
相關標籤/搜索