以各個城市的天氣為例, 先準備下麵的數據: 印度天氣的相關信息: 美國天氣的相關信息: 用 concat 組合上面兩個 dataframe: 輸出: 上面的輸出最左邊的序列號是重覆的, 原因是數據分別來自兩個 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~~~