我有如下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
我需要在这个DataFrame中创建一个新列:
- New1=从";日期";列直到今天
这可能不是最优雅的方式,但它在这里起作用——它是
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中,基本上是找到从现在到经过的时间之间的delta作为一个参数,然后将其转换为月份,如果你不需要小数部分,你可以将其下限或类似的东西。