#8 Python/Pandas データの結合

複数データを結合させて一つのデータを作る方法を解説します。まず、df1とdf2のデータを用意します。

import pandas as pd
data1 = {'time':[0,1,2,3,4,5,6,7,8,9,10]
       ,'data_cat':['a','a','a','a','a','a','a','a','a','a','a']
       ,'data':[111,115,200,300,500,500,200,100,50,5,0]}
   
df1 = pd.DataFrame(data1)


data2 = {'time':[0,1,3,5,7,9]
       ,'data_cat':['b','b','b','b','b','b']
       ,'data':['AA','BB','CC',12,'DD',5]}
   
df2 = pd.DataFrame(data2)

結果は、

画像1

となり、timeデータの周期の異なるデータが作成されました。さまざまな結合方法を紹介します。

inner join

timeを共通データとして、timeの値で内部結合させます。

pd.merge(df1, df2, how="inner" ,on="time")

画像2

left join

data1の左側からdata2を結合させます。

pd.merge(df1, df2, how="left" ,on="time")

画像3

このとき、もとになるデータの長さに合わせて結合されます。つまり、data2|data1という結合方法なら、

画像4

となる。

ここで出てくるNaNは、データ欠損値でそこにもともとデータがなかったことを表しています。

その他の結合方法は、

に掲載されています。

これで、APIから上がってきた複数の情報をひとつのCSVファイルにまとめることができるようになります。



いいなと思ったら応援しよう!