Pandas 基礎(8) - 用 concat 組合 dataframe


以各個城市的天氣為例, 先准備下面的數據:

印度天氣的相關信息:

import pandas as pd india_weather = pd.DataFrame({ 'city': ['mumbai', 'delhi', 'banglore'], 'temperature': [32, 34, 30], 'humidity': [80, 60, 72] }) india_weather 

美國天氣的相關信息:

us_weather = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'temperature': [21, 24, 32], 'humidity': [68, 65, 70] }) us_weather 

用 concat 組合上面兩個 dataframe:

df = pd.concat([india_weather, us_weather]) df 

輸出:

上面的輸出最左邊的序列號是重復的, 原因是數據分別來自兩個 dataframe 的索引值, 可以通過忽略原本的索引來做改變:

df = pd.concat([india_weather, us_weather], ignore_index=True) 

輸出:

下面再介紹另一種輸出形式:

df = pd.concat([india_weather, us_weather], keys=['india', 'us']) 

輸出:

由於我們上面設置了關鍵字, 所以下面就可以利用這個關鍵字獲取相關的信息:

df.loc['india'] 

輸出:

從我們一系列的輸出可以看出, 這些組合都是縱向的組合, 那么在實際應用中, 我們是經常需要做橫向組合的, 比如下面的例子:

temperature_df = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'temperature': [21, 24, 32], }) 
windspeed_df = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'temperature': [7, 12, 9], }) 

橫向組合:

df = pd.concat([temperature_df, windspeed_df], axis=1) 

輸出:

從目前的輸出來看, 兩組數據對應的很好, 同一個城市都在同一行上, 那如果我們把數據源改下:

windspeed_df = pd.DataFrame({ 'city': ['chicago', 'newyork'], 'temperature': [12, 7], }) 

我改動了關於風速的數據, 顛倒了城市的順序, 還刪掉了一個城市, 大家可以自己運行一下, 看到輸出的結果有點亂了. 遇到這種情況, 我們可以通過給原數據加索引的方式, 來設置數據的排序:

temperature_df = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'temperature': [21, 24, 32], }, index=[0, 1, 2]) windspeed_df = pd.DataFrame({ 'city': ['chicago', 'newyork'], 'temperature': [12, 7], }, index=[1, 0]) 

輸出:

這樣數據順序就調好了.

下面再介紹一下 dataframe 與 series 的組合方式:

s = pd.Series(['Humidity', 'Dry', 'Rain'], name='event')

df = pd.concat([temperature_df, s], axis=1)

輸出:

以上就是關於 concat 的組合數據的一些常用方法啦, 下節課會帶來更勁爆的組合方法, enjoy~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM