こんにちは、ヒガシです。
このページでは、以下の画像のようにPandasで読み込んだ2つのデータフレームを縦方向に結合する方法をご紹介していきます。
それではさっそく本題に入っていきましょう!
dataframeを縦方向に結合する方法
まずはやり方の紹介です。
2つのデータフレームを縦方向に結合する方法は以下の通りです。
※df1, df2:結合するデータフレーム
最後のaxis=で縦方向に、という指示を行っています。
結合前にやっておく必要があること
2つのデータフレームを縦方向に結合する際、それぞれの列名が一致していなければうまく結合することはできません。
そのため、結合前にそれらを一致させておく必要があります。
そのやり方は以下の通りです。
df2:列名を書き換えられる側のデータフレーム
df1:ベースとなる列名を持ったデータフレーム
これでdf2の列名がdf1の列名に書き換えられますので、先ほど紹介したコードがうまく機能するようになります。
結合後にやっておいた方がよいこと
次は結合後の話です。
2つのデータフレームを縦方向に結合した場合、何も追加処理しないと結合後の行数は結合前の行数が受け継がれます。
要するに以下の画像のようになります。
ここは絶対やらなければいけないわけではないですが、行数を最初から振りなおしておいた方が良いでしょう。
というわけでそのやり方は以下の通りです。
これでindex(=行数)がリセットされ、上から順番に0,1,2と割り振られていきます。
データフレームを縦方向に結合するサンプルコード
それでは、先程のスキルを実際に使っていきましょう。
以下の状況下で実行していきます。
data1.csv, data2.csvをデータフレームとして読み込み、それらを縦方向に結合するという作業を実施してみます。
(df_concat.pyがこれから紹介するプログラムが書かれたファイルです。)
data1.csv, data2.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つのデータフレームが横縦方向に結合されていますね。
おわりに
というわけで今回はpython-pandasを使って、2つのデータフレームを縦方向に結合する方法をご紹介しました。
データ分析の際などにぜひご活用ください。
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント