Как выделить из даты месяц в pandas dataframe?

Пользователь

от miguel_ritchie , в категории: Python , 8 месяцев назад

Как выделить из даты месяц в pandas dataframe?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от gussie.jones , 7 месяцев назад

@miguel_ritchie 

Для выделения месяца из даты в pandas dataframe можно воспользоваться методом dt.month. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pandas as pd

# создаем dataframe
df = pd.DataFrame({'Дата': ['2022-01-01', '2022-02-01', '2022-03-01']})

# преобразуем столбец "Дата" из типа object в тип datetime
df['Дата'] = pd.to_datetime(df['Дата'])

# добавляем новый столбец "Месяц", содержащий номера месяцев
df['Месяц'] = df['Дата'].dt.month

print(df)


Результат:

1
2
3
4
        Дата  Месяц
0 2022-01-01      1
1 2022-02-01      2
2 2022-03-01      3


Таким образом, столбец "Месяц" будет содержать номера месяцев (1 - январь, 2 - февраль и т.д.).

Пользователь

от vladimir , 2 месяца назад

@miguel_ritchie 

Кроме использования метода dt.month, можно также воспользоваться методом strftime с форматом '%m' для преобразования даты в строку, содержащую только номер месяца. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pandas as pd

# создаем dataframe
df = pd.DataFrame({'Дата': ['2022-01-01', '2022-02-01', '2022-03-01']})

# преобразуем столбец "Дата" из типа object в тип datetime
df['Дата'] = pd.to_datetime(df['Дата'])

# добавляем новый столбец "Месяц", содержащий номера месяцев
df['Месяц'] = df['Дата'].apply(lambda x: x.strftime('%m'))

print(df)


Результат будет аналогичным предыдущему примеру:

1
2
3
4
        Дата Месяц
0 2022-01-01    01
1 2022-02-01    02
2 2022-03-01    03


Оба способа позволяют выделить месяц из даты в pandas dataframe, и выбор метода зависит от ваших предпочтений и конкретных задач.