Pandas df.tail() 関数

Pandas 常用函数Pandas よく使う関数


tail()Pandas DataFrame と Series の重要な関数であり、データセットの末尾部分を表示するために使用されます。最後の n 行のデータを返すので、データセット全体を走査しなくても、データの末尾の状況や最新レコードをすばやく把握できます。

時系列データ分析では、tail()特に有用です。通常、私たちが関心を持つのは最新のデータ(例:直近の株価、売上、センサーの値など)だからです。この関数はhead()df.head() と相互に補完し合い、データ探索の基礎ツールを構成しています。


基本構文とパラメータ

tail()DataFrame と Series のメンバー関数であり、ドット演算子によって.呼び出します。この関数はhead()df.head() の使用方法とまったく同じで、表示する方向が逆なだけです。

構文形式

DataFrame.tail(n=5)
Series.tail(n=5)

パラメータの説明

パラメータ 型 必須かどうか 説明 デフォルト値
n int オプション 最後の n 行のデータを返します。n が総行数より大きい場合は、すべてのデータを返します。 5

戻り値の説明

  • 戻り値の型:呼び出し元が DataFrame の場合は DataFrame を返し、呼び出し元が Series の場合は Series を返します。
  • 返される行数:最大 n 行を返します。データの行数が n 未満の場合は、すべてのデータを返します。
  • インデックスの保持:返されるデータは、元の DataFrame のインデックス値を保持します。

例

例を使って、tail()の使い方を徹底的にマスターしましょう。

例1:基本用法 - DataFrame の末尾数行を表示

DataFrame を作成して、tail()末尾のデータを表示します。

例

import pandas as pd

# サンプル DataFrame を作成する
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Henry', 'Iris', 'Jack'],
    'age': [18, 19, 17, 18, 20, 19, 18, 17, 19, 18],
    'score': [85, 92, 78, 90, 88, 95, 82, 76, 89, 91],
    'grade': ['A', 'A', 'B', 'A', 'B', 'A', 'B', 'C', 'B', 'A']
}
df = pd.DataFrame(data)

# デフォルトでは最後の 5 行を返す
print(デフォルトの最後の 5 行:)
print(df.tail())

# 最後の 3 行を指定して返す
print(n最後の 3 行:)
print(df.tail(3))

# 最後の 7 行を返す
print(n最後の 7 行:)
print(df.tail(7))

実行結果:

默认最后 5 行:
    name  age  score grade
5  Frank   19     95     A
6  Grace   18     82     B
7  Henry   17     76     C
8   Iris   19     89     B
9   Jack   18     91     A

最后 3 行:
    name  age  score grade
7  Henry   17     76     C
8   Iris   19     89     B
9   Jack   18     91     A

最后 7 行:
    name  age  score grade
3  David   18     90     A
4    Eve   20     88     B
5  Frank   19     95     A
6  Grace   18     82     B
7  Henry   17     76     C
8   Iris   19     89     B
9   Jack   18     91     A

コードの解説:

  1. DataFrame には 10 行のデータがあり、インデックスは 0 から 9 です。
  2. df.tail()インデックスが 5 から 9 の最後の 5 行を返します。
  3. df.tail(3)最後の 3 行のみを返します。インデックスは 7、8、9 です。
  4. インデックス値は元の DataFrame のインデックスが保持され、0 から再採番されないことに注意してください。

例2:Series の末尾数行を表示

tail()Series オブジェクトにも同様に適用されます。

例

import pandas as pd

# Series を作成する
s = pd.Series([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])

# 最後の 3 つの要素を表示
print(最後の 3 つの要素:)
print(s.tail(3))

# インデックス付き Series を作成する
s2 = pd.Series([100, 200, 300, 400, 500], index=['a', 'b', 'c', 'd', 'e'])
print(nインデックス付き Series の最後の 2 つの要素:)
print(s2.tail(2))

実行結果:

最后 3 个元素:
7     80
8     90
9    100
dtype: int64

带索引 Series 的最后 2 个元素:
d    500
e    600
dtype: int64

コードの解説:

  • Series のtail()メソッドは最後の n 個の要素を返し、元のインデックスを保持します。
  • カスタムインデックスの Series でも同様に機能し、末尾の対応する要素を返します。

例3:時系列データへの応用

時系列データを扱う際、tail()特に便利で、最新のデータレコードをすばやく確認できます。

例

import pandas as pd
import numpy as np

# 時系列 DataFrame を作成し、株価データをシミュレートする
np.random.seed(42)
dates = pd.date_range('2024-01-01', periods=30, freq='D')
prices = 100 + np.cumsum(np.random.randn(30))  # 株価の動きをシミュレートする

stock_df = pd.DataFrame({
    'date': dates,
    'price': prices.round(2),
    'volume': np.random.randint(1000, 10000, 30)
})

print(全データの最初の数行と最後の数行の比較:)
print(n最初の 5 行:)
print(stock_df.head())
print(n最後の 5 行:)
print(stock_df.tail())

# tail を使用して最新数日分のデータを表示
latest_data = stock_df.tail(7)
print(n直近 7 日間のデータ:)
print(latest_data)

# tail の結果に対してさらに分析を行うことができる
print(n直近 7 日間の平均価格:, latest_data['price'].mean())
print(直近 7 日間の総取引量:, latest_data['volume'].sum())

実行結果:

完整数据的前几行和后几行对比:

前 5 行:
         date   price  volume
0  2024-01-01  100.34   5234
1  2024-01-02   99.87   3421
2  2024-01-03  100.21   6789
3  2024-01-04   98.45   4321
4  2024-聚合-05  99.12   5654

最后 5 行:
         date   price  volume
25 2024-01-26  102.45   4321
26 2024-01-27  103.12   5678
27 2024-01-28  101.89   6543
28 2024-01-29  104.23   3211
29 2024-01-30  103.87   4532

最近 7 天的数据:
         date   price  volume
23 2024-01-24  101.56   4321
24 2024-01-25  102.01   5432
25 2024-01-26  <td>  45   4321
26 2024-01-27  103.12   5678
27 2024-01-28  101.89   6543
28 2024-01-29  104.23   3211
29 2024-01-30  103.87   4532

最近 7 天的平均价格: 102.79
最近 7 天的总成交量: 34938

コードの解説:

  1. 30 日分の株価データを含む DataFrame を作成しました。
  2. tail()最新のデータレコードをすばやく特定します。
  3. に対してtail()返されたデータは、他の関数をさらに呼び出して計算・分析を行うことができます。
  4. このパターンは、リアルタイムデータ分析のシナリオで非常に実用的です。

注意事項

  • tail()元の DataFrame や Series を変更せず、新しいオブジェクトを返します。
  • n が 0 以下の場合は、空の DataFrame または空の Series を返します。
  • 大規模なデータセットの場合、tail()データ全体を読み込むよりも効率的です。ファイル全体を読み取る必要がないためです。
  • tail()とhead()よく一緒に使われ、データの両端の状況を包括的に把握できます。

ヒント:データ分析の探索段階では、同時に使用することをお勧めします。head()とtail()これにより、データが期待どおりに並んでいるかどうか、およびデータの完全性をすばやく判断できます。


まとめ

tail()Pandas でデータの末尾部分を確認するための関数であり、head()df.head() と相互に補完します。時系列分析、リアルタイムデータ監視、ログ分析などのシナリオで特に役立ちます。

習得し、head()とtail()これら 2 つの関数を使えば、データセットの最初と最後をすばやく把握でき、これはデータ探索段階で非常に重要な第一歩です。さらに、info()とdescribe()前述のような関数を組み合わせることで、データの特徴や分布状況を包括的に把握できます。

Pandas 常用函数Pandas よく使う関数

その他の拡張