Как создать категориальный столбец на основе двух дат в PythonPython

Программы на Python
Anonymous
Как создать категориальный столбец на основе двух дат в Python

Сообщение Anonymous »

У меня есть следующие данные:

Код: Выделить всё

# importing libraries
import numpy as np
import pandas as pd

# create data table
df = pd.DataFrame({
'date': ['1/7/2020 19:09','11/18/2019 20:23','5/19/2023 14:55','9/11/2019 17:14']})
Я хотел бы создать категориальную переменную term_type на основе двух дат в Python, используя следующее определение \



Тип термина
Диапазон




Лето
23 марта – 6 июля


Осень
7 июля – 23 октября


Весна
24 октября – 22 марта


МОЯ ПОПЫТКА

Я пытался использовать np.where для создания этого столбца с использованием условий. Сначала я выделил месяц и день в столбцы «месяц» и «день» соответственно. См. ниже:

Код: Выделить всё

# extracting month and day
df['month'] = pd.to_datetime(df["date"], format= date_format).dt.month
df['day']  = pd.to_datetime(df["date"], format= date_format).dt.day

# use np.where to create a conditional column
df['term_type'] = np.where((df['month']>=3) & (df['month']=10) & (df['month']=22),'spring','fall'))
Но результат оказался не таким, как я ожидал. Для всех это оказывается «Падением».
Изображение

Это мой желаемый результат.

Код: Выделить всё

# Desired output
df['desired_term_type'] = ['spring','spring','summer','fall']
Изображение

Может кто-нибудь, пожалуйста, помогите мне объяснить, что я сделал не так с моим кодом и как я могу решить эту проблему? Любая помощь приветствуется!

Подробнее здесь: https://stackoverflow.com/questions/785 ... -in-python

Вернуться в «Python»