この記事では、Pythonのpandasにて最終行の取得・削除・追加をする方法【tailやdropなど】をする方法を解説していきます。
基本的には、
・先頭のみ抽出:tail関数を使う
・先頭のみ削除:drop関数を使う
・追加: concat関数を使う
といいです。
詳細は以下の通り。
Pandasにて最終行の取得をする方法【最後の行のみを抽出】
それでは以下で、Pythonのpandasで最終行のみを抽出する方法を見ていきましょう。
データフレームを1から作成するよりcsvを読み込み方が楽なので、以下をサンプルとして読み込んで説明します!(C直下のrenshuuフォルダ内に、renshuu.csvがある)。
import pandas as pd
import os
os.chdir("C://renshuu")
df = pd.read_csv("renshuu.csv")
df
このrenshuu.csvの最終行を取得しましょう(最後の行のみを抽出する)。
この場合は
df.tail(1)
と処理するだけでいいです。
これで最後の行のみが取得できました。
なお、df.tail()と引数を指定しないデフォルトの状態では、最後の5行分の抽出となるので気を付けましょう。
df.tail(2)とすれば最後の2行分を取得
tail関数の引数は最終行から数えて~行目か?に当たるため、2といれれば最後の2行分を取得できます!
df[-2:]でも最終行の抽出ができる
tail関数を使わずとも、df[-2:]と書くことで最終行の取得も可能です。
Pandasにて最終行を削除する方法【iloc】
今度は最終行を消す方法を見ていきましょう。
先頭のみを消すにはilocメソッドにて[-1]とすればOKです。
df.iloc[:-1]
です。配列における(iloc関数使用時など)における最終行は「-1」なことにも注意しましょう。
df.drop(df.index[-1])でも先頭のみの削除が可能
df.drop(df.index[-1])
でも最終行だけを消すことができます。
.index[-1]にて最終行を選択(インデックスを確認し、その最後を見ている)し、drop関数で削除しています。
Pandasにて最終行の追加をする方法
最終行の追加をする際には、少し工夫が必要です。
最近では基本的にconcatを使うことが推奨されていることもあり、以下のように記載しましょう。
import pandas as pd
import os
os.chdir("C://renshuu")
df = pd.read_csv("renshuu.csv")
new_row = {'aaa': 99, 'bbb': 99} # これを先頭に追加したいデータとする
df = pd.concat([df,pd.DataFrame([new_row]),]).reset_index(drop=True)
df
new_rowを予め準備しておき、concatにて、元のdfの後にに結合させるイメージです(^^)/
関連記事として
・Pandasにて先頭行の取得・削除・追加をする方法【headやdrop:最初の行など】はこちら
で解説のため、併せてチェックしてみてください♪
まとめ Pandasにて最終行の削除・追加・取得をする方法【tailやdropなど】
この記事では、Pandasにて最終行の取得・削除・追加をする方法【tailやdropなど】について解説しました。
パス指定の処理は頻出のため、覚えておくといいです。
さまざまな扱いに慣れ、pythonマスターを目指しましょう!