Pandas df.tail() 関数
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()末尾のデータを表示します。
例
# サンプル 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
コードの解説:
- DataFrame には 10 行のデータがあり、インデックスは 0 から 9 です。
df.tail()インデックスが 5 から 9 の最後の 5 行を返します。df.tail(3)最後の 3 行のみを返します。インデックスは 7、8、9 です。- インデックス値は元の DataFrame のインデックスが保持され、0 から再採番されないことに注意してください。
例2:Series の末尾数行を表示
tail()Series オブジェクトにも同様に適用されます。
例
# 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 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
コードの解説:
- 30 日分の株価データを含む DataFrame を作成しました。
tail()最新のデータレコードをすばやく特定します。- に対して
tail()返されたデータは、他の関数をさらに呼び出して計算・分析を行うことができます。 - このパターンは、リアルタイムデータ分析のシナリオで非常に実用的です。
注意事項
tail()元の DataFrame や Series を変更せず、新しいオブジェクトを返します。- n が 0 以下の場合は、空の DataFrame または空の Series を返します。
- 大規模なデータセットの場合、
tail()データ全体を読み込むよりも効率的です。ファイル全体を読み取る必要がないためです。 tail()とhead()よく一緒に使われ、データの両端の状況を包括的に把握できます。
ヒント:データ分析の探索段階では、同時に使用することをお勧めします。
head()とtail()これにより、データが期待どおりに並んでいるかどうか、およびデータの完全性をすばやく判断できます。
まとめ
tail()Pandas でデータの末尾部分を確認するための関数であり、head()df.head() と相互に補完します。時系列分析、リアルタイムデータ監視、ログ分析などのシナリオで特に役立ちます。
習得し、head()とtail()これら 2 つの関数を使えば、データセットの最初と最後をすばやく把握でき、これはデータ探索段階で非常に重要な第一歩です。さらに、info()とdescribe()前述のような関数を組み合わせることで、データの特徴や分布状況を包括的に把握できます。
Pandas よく使う関数