#python #excel #pandas #dataframe
#python #excel #панды #фрейм данных
Вопрос:
Я уверен, что на это действительно легко ответить, но я только начал использовать Pandas.
В моем файле Excel есть столбец с именем «День» и столбец даты / времени с именем «Дата».
Я хочу обновить свой столбец «День» соответствующим днем МНОГОЧИСЛЕННЫХ дат из столбца «Дата».
Пока я использую этот код, показанный ниже, чтобы изменить дату / время на просто дату
df['Date'] = pd.to_datetime(df.Date).dt.strftime('%d/%m/%Y')
А затем используйте этот код, чтобы изменить столбец «День» на вторник
df.loc[df['Date'] == '02/02/2018', 'Day'] = '2'
(2 означает 2-й день недели)
Это отлично работает. Проблема в том, что мой лист Excel содержит более 500000 строк данных и множество дат. Поэтому мне нужен этот код для работы с многочисленными датами (точнее, с 4 разными датами)
Например; Я пробовал этот код;
df.loc[df['Date'] == '02/02/2018' '09/02/2018' '16/02/2018' '23/02/2018', 'Day'] = '2'
Который не выдает мне ошибку, но не изменяет дату на 2. Я знаю, что мог бы просто использовать одну и ту же строку кода несколько раз и каждый раз менять дату … но должен быть способ сделать это так, как я объяснил? Помощь была бы весьма признательна 🙂
Ответ №1:
2/2/2018
это пятница, поэтому я не знаю, что означает «2-й день недели». Ваша неделя начинается в четверг?
Поскольку вы уже преобразовали day
в Timestamp, используйте средство dt
доступа:
df['Day'] = df['Date'].dt.dayofweek()
Понедельник равен 0, а воскресенье = 6. Манипулируйте этим по мере необходимости.
Ответ №2:
Если все правильно, вы хотите изменить Day
столбец только для нескольких Dates
, верно? Если это так, вы можете просто включить эти даты в отдельный список и выполнить
my_dates = ['02/02/2018', '09/02/2018', '16/02/2018', '23/02/2018']
df.loc[df['Date'].isin(my_dates), 'Day'] = '2'
Комментарии:
1. Извините, моя ошибка, да, вы правы, у меня все работает, спасибо