У меня есть DataFrame, как показано ниже:
df['Date'] =
...
936 2012-12-31
938 2012-12-29
965 2012-12-31
966 2012-12-31
967 2012-12-31
968 2012-12-31
969 2012-12-31
970 2012-12-29
971 2012-12-31
972 2012-12-29
973 2012-12-29
И мне нужно создать 1 новый столбец в этом DataFrame:
Это может быть не самый элегантный способ, но здесь он работает.
data = { 'Date': [np.datetime64('2012-12-31'), np.datetime64('2012-12-29'), np.datetime64('2012-12-31')]}
df = pd.DataFrame(data, columns=['Date'])
def calculate_months(date):
now = datetime.datetime.now()
diff = now - date
return diff / np.timedelta64(1,'M')
df['New1'] = df.Date.apply(calculate_months).tolist()
Все сложное находится внутри calculate_months, в основном найдите дельту между настоящим моментом и временем, переданным в качестве аргумента, а затем переведите это в месяцы, если вам не нужна десятичная часть, вы можете просто вычислить ее или что-то в этом роде.
Я пропустил импорт, вам нужно импортировать NumPy и datetime, чтобы этот код работал, поэтому просто добавьте import numpy as np
и import datetime
У меня ошибка: NameError: имя 'datetime' не определено