У меня есть pands df с int столбцами year, month и day.Я хотел бы создать новый столбец df.is_payday наиболее питонным способом, который равен 1, если df.day равен 20 или 30, иначе 0.
Однако в некоторых месяцах нет 30дней, поэтому в этих случаях я бы хотел, чтобы df.is_payday имел 1 только тогда, когда df.day равен 20 или 29, иначе 0.
Однако в некоторых месяцах даже нет 28 дней, поэтому в этих случаяхЯ бы хотел, чтобы df.is_payday имел 1 только тогда, когда df.day равен 20 или 28, иначе 0.
Может ли это быть сделано с использованием списка?Можно ли это также сделать с помощью модулей календаря или даты и времени, основанных на некотором количестве дней месяца?
РЕДАКТИРОВАТЬ
Я успешно использовал приведенный ниже код, хотя мне бы хотелось использовать что-то более питоническое:
lst = []
for i,k in zip(df['day'], df['month_total_days']):
if i == 20 | i == 30 & k >= 30:
lst.append(1)
elif i == 20 | i == 29 & k == 29:
lst.append(1)
elif i == 20 | i == 28 & k == 28:
lst.append(1)
else:
lst.append(0)
df['is_payday'] = lst