Python

【Python】Pandasにて最終行の取得・削除・追加をする方法【tailやdrop:最後の行など】

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では、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マスターを目指しましょう!