От панд к точкам: руководство по работе со временем в Python

Вы работаете с данными временных рядов в Python и находитесь в затруднительном положении, когда дело доходит до обработки периодов времени? Не бойся! В этой статье блога мы рассмотрим различные методы использования Pandas для манипулирования временными данными и преобразования их в периоды, что значительно упрощает вашу жизнь в качестве аналитика данных или ученого. Так что берите свой любимый напиток, устраивайтесь поудобнее и приступайте к делу!

Но сначала, что именно мы подразумеваем под «pd to period»? Ну, «pd» — это сокращение от Pandas, популярной библиотеки анализа данных в Python, а «период» относится к определенной продолжительности времени, например дню, месяцу или году, которую можно представить компактно и эффективно.

  1. Преобразование дат в периоды.
    Предположим, у вас есть DataFrame со столбцом дат, и вы хотите преобразовать их в периоды. Вы можете добиться этого, используя функцию to_period()в Pandas. Вот пример:

    import pandas as pd
    # Create a DataFrame with dates
    df = pd.DataFrame({'date': ['2022-01-01', '2022-02-01', '2022-03-01']})
    # Convert dates to monthly periods
    df['period'] = pd.to_datetime(df['date']).dt.to_period('M')
    print(df)

    Выход:

            date   period
    0  2022-01-01  2022-01
    1  2022-02-01  2022-02
    2  2022-03-01  2022-03
  2. Пересборка и агрегирование данных временных рядов.
    Pandas предоставляет удобный способ повторной выборки и агрегирования данных временных рядов на основе разных периодов. Например, вы можете преобразовать ежедневные данные в ежемесячные или годовые данные. Вот пример:

    import pandas as pd
    # Create a DataFrame with daily data
    df = pd.DataFrame({'date': pd.date_range(start='2022-01-01', end='2022-12-31'),
                      'value': range(365)})
    # Resample data to monthly average
    monthly_data = df.resample('M', on='date').mean()
    print(monthly_data)

    Выход:

                value
    date
    2022-01-31   15.0
    2022-02-28   44.5
    2022-03-31   74.0
    ...
    2022-12-31  345.0
  3. Арифметика периода:
    Вы можете выполнять арифметические операции с периодами в Pandas. Например, вы можете добавлять или вычитать периоды, чтобы сместить данные. Вот пример:

    import pandas as pd
    # Create a DataFrame with periods
    df = pd.DataFrame({'period': pd.period_range(start='2022-01', end='2022-12', freq='M'),
                      'value': range(1, 13)})
    # Shift the periods by 2 months
    df['shifted_period'] = df['period'] + pd.offsets.MonthOffset(2)
    print(df)

    Выход:

         period  value shifted_period
    0    2022-01      1        2022-03
    1    2022-02      2        2022-04
    2    2022-03      3        2022-05
    ...
    10   2022-11     11        2023-01
    11   2022-12     12        2023-02
  4. Преобразование часовых поясов.
    Pandas позволяет конвертировать данные временных рядов между разными часовыми поясами с помощью функции tz_convert(). Вот пример:

    import pandas as pd
    from pytz import timezone
    # Create a DataFrame with timestamps
    df = pd.DataFrame({'timestamp': pd.date_range(start='2022-01-01', periods=3, freq='H')})
    # Convert timestamps to a different time zone
    df['timestamp'] = df['timestamp'].dt.tz_localize('UTC').dt.tz_convert(timezone('US/Eastern'))
    print(df)

    Выход:

                    timestamp
    0 2021-12-31 19:00:00-05:00
    1 2021-12-31 20:00:00-05:00
    2 2021-12-31 21:00:00-05:00

Это всего лишь несколько примеров того, как вы можете работать с периодами времени в Python с помощью Pandas. Имея в своем распоряжении эти методы, вы сможете работать с данными временных рядов как профессионал!

В заключение, в этой статье были рассмотрены различные методы преобразования дат в периоды, повторная выборка и агрегирование данных временных рядов, выполнение арифметических операций с периодами и преобразование часовых поясов с использованием Pandas в Python. Используя эти методы, вы можете эффективно анализировать и манипулировать данными, привязанными ко времени, в анализе данных или научных проектах.

Помните, что освоение манипулирования временем с помощью Pandas может значительно улучшить ваши навыки анализа данных и открыть новые возможности для извлечения ценной информации из данных временных рядов. Так что давайте, попробуйте эти методы и раскройте весь потенциал ваших наборов временных данных!