【Python-pandas】2つのデータフレームを縦方向に結合する方法!

こんにちは、ヒガシです。

 

このページでは、以下の画像のようにPandasで読み込んだ2つのデータフレームを縦方向に結合する方法をご紹介していきます。

2つのデータフレームを縦方向に結合するという概要図

それではさっそく本題に入っていきましょう!

 

スポンサーリンク

dataframeを縦方向に結合する方法

まずはやり方の紹介です。

2つのデータフレームを縦方向に結合する方法は以下の通りです。

結合後データフレーム=pandas.concat([df1,df2],axis=0)
※df1, df2:結合するデータフレーム

最後のaxis=で縦方向に、という指示を行っています。

 

スポンサーリンク

結合前にやっておく必要があること

2つのデータフレームを縦方向に結合する際、それぞれの列名が一致していなければうまく結合することはできません

 

そのため、結合前にそれらを一致させておく必要があります。

 

そのやり方は以下の通りです。

df2.columns=df1.columns
df2:列名を書き換えられる側のデータフレーム
df1:ベースとなる列名を持ったデータフレーム

 

これでdf2の列名がdf1の列名に書き換えられますので、先ほど紹介したコードがうまく機能するようになります。

 

スポンサーリンク

結合後にやっておいた方がよいこと

次は結合後の話です。

2つのデータフレームを縦方向に結合した場合、何も追加処理しないと結合後の行数は結合前の行数が受け継がれます。

 

要するに以下の画像のようになります。

結合後に生じる問題の解説

ここは絶対やらなければいけないわけではないですが、行数を最初から振りなおしておいた方が良いでしょう。

 

というわけでそのやり方は以下の通りです。

結合後データフレーム.reset_index(drop=True)

 

これでindex(=行数)がリセットされ、上から順番に0,1,2と割り振られていきます。

 

スポンサーリンク

データフレームを縦方向に結合するサンプルコード

それでは、先程のスキルを実際に使っていきましょう。

 

以下の状況下で実行していきます。

data1.csv, data2.csvをデータフレームとして読み込み、それらを縦方向に結合するという作業を実施してみます。

(df_concat.pyがこれから紹介するプログラムが書かれたファイルです。)

使用するデータの紹介

data1.csv, data2.csvはそれぞれ以下のようなデータが入っています。

2つのcsvファイルの中身を確認した結果

 

それではサンプルコードです。

import pandas as pd
#ベースデータの読み込み
data1='data1.csv'
data2='data2.csv'
df1=pd.read_csv(data1)
df2=pd.read_csv(data2)
print('df1=')
print(df1)
print('df2=')
print(df2)
#Column名を統一する
df2.columns=df1.columns
#2つのデータフレームを縦方向に結合する
df_concat=pd.concat([df1,df2],axis=0)
#行数を再度割り振る
df_concat=df_concat.reset_index(drop=True)
print('df_concat=')
print(df_concat)

 

こいつを実行すると以下の結果が得られました。

 

問題なく2つのデータフレームが横縦方向に結合されていますね。

2つのデータフレームを縦方向に結合した結果

 

スポンサーリンク

おわりに

というわけで今回はpython-pandasを使って、2つのデータフレームを縦方向に結合する方法をご紹介しました。

 

データ分析の際などにぜひご活用ください。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました