Функция Pandas df.tail()

Pandas 常用函数Pandas: общие функции


tail()Это важная функция в Pandas DataFrame и Series, используемая для просмотра конца набора данных. Она возвращает последние n строк данных, позволяя быстро понять завершающую часть и последние записи данных без обхода всего набора данных.

При анализе данных временных рядовtail()она особенно полезна, поскольку обычно нас интересуют последние данные, например, недавние цены акций, продажи или показания датчиков. Эта функция иhead()являются взаимодополняющими, и вместе они составляют базовые инструменты для исследования данных.


Базовый синтаксис и параметры

tail()Это функция-член DataFrame и Series, вызываемая через оператор точки.для вызова. Он иhead()имеют точно такое же использование, за исключением того, что направление просмотра противоположно.

Формат синтаксиса

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

Описание параметра

Параметр Type Обязательный Описание Значение по умолчанию
n int Optional Возвращает последние n строк данных. Если n больше общего количества строк, возвращает все данные. 5

Описание возвращаемого значения

  • Тип возвращаемого значения: Если вызывающий объект — DataFrame, возвращает DataFrame; если вызывающий объект — Series, возвращает Series.
  • Количество возвращаемых строк: Возвращает не более n строк; если в данных меньше n строк, возвращает все данные.
  • Сохранение индекса: Возвращаемые данные сохраняют значения индекса исходного DataFrame.

Примеры

Давайте всесторонне освоимtail()его использование на примерах.

Пример 1: Базовое использование — просмотр последних строк DataFrame

Создайте DataFrame и используйтеtail()чтобы просмотреть данные в конце.

Пример

import pandas as pd

# Создайте пример DataFrame
data = {
    'name': ['Алиса', 'Боб', 'Чарли', 'Дэвид', 'Ева', 'Фрэнк', 'Грейс', 'Генри', 'Айрис', 'Джек'],
    '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 строк с индексами от 5 до 9.
  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Последние 2 элемента индексированного Series:")
print(s2.tail(2))

Вывод:

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

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

Пояснение кода:

  • Метод Seriestail()возвращает последние 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': даты,
    'price': цены.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("nОбщий объем торгов за последние 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. Создан DataFrame, содержащий данные о ценах акций за 30 дней.
  2. tail()Быстро находит последние записи данных.
  3. Параtail()Возвращенные данные можно дополнительно обработать, вызвав другие функции для вычислений и анализа.
  4. Этот шаблон очень полезен в сценариях анализа данных в реальном времени.

Важные замечания

  • tail()Он не изменяет исходный DataFrame или Series; он возвращает объект.
  • Когда n меньше или равно 0, он возвращает пустой DataFrame или пустой Series.
  • Для больших наборов данных,tail()это более эффективно, чем загрузка всех данных, потому что не нужно читать весь файл.
  • tail()иhead()Их часто используют вместе, чтобы всесторонне понять оба конца данных.

Совет: На этапе исследования данных в анализе данных рекомендуется использоватьhead()иtail()чтобы можно было быстро определить, отсортированы ли данные так, как ожидается, а также полноту данных.


Итог

tail()Это функция в Pandas, используемая для просмотра хвостовой части данных, иhead()они дополняют друг друга. Это особенно полезно в таких сценариях, как анализ временных рядов, мониторинг данных в реальном времени и анализ журналов.

Освоениеhead()иtail()эти две функции позволяют быстро понять начало и конец набора данных, что является очень важным первым шагом на этапе исследования данных. В сочетании сinfo()иdescribe()и другими функциями мы можем всесторонне понять характеристики и распределение данных.

Pandas 常用函数Pandas: общие функции

Другие расширения