Python datetime.now() 和填满日期的系列之间的年份差异?
Python difference in years between a datetime.now() and a Series filled up with dates?
我想在我的数据集中创建一个新列,这是今天和数据集中已有的另一列之间的年份差异,填充了日期。
上面的代码:
df['diff_years'] = datetime.today() - df['some_date']
df['diff_years']
给我以下输出(示例):
1754 days 11:44:28.971615
我必须得到类似的东西(意思是上面的年输出):
4,8
(or 5)
感谢任何帮助!
PS.: 我想避免循环系列,我相信路径会给我一个想要的解决方案,但由于有一个大系列我想避免这种方式。
这是一种方法:
import pandas as pd, numpy as np
df = pd.DataFrame({'date': ['2009-06-15 00:00:00']})
df['years'] = (pd.to_datetime('now') - pd.to_datetime(df['date'])) / np.timedelta64(1, 'Y')
# date years
# 0 2009-06-15 00:00:00 8.713745
几天前我在我的项目中遇到了同样的问题现在我已经尝试过这些,
from dateutil.relativedelta import relativedelta
from datetime import date
now = date.today()
some_date = date(df['some_date'])
rdelta = relativedelta(now, some_date)
print('diff in years - ', rdelta.years)
print('remaining months - ', rdelta.months)
print('remaining days - ', rdelta.days)
它应该以年为单位打印差异
我想在我的数据集中创建一个新列,这是今天和数据集中已有的另一列之间的年份差异,填充了日期。
上面的代码:
df['diff_years'] = datetime.today() - df['some_date']
df['diff_years']
给我以下输出(示例):
1754 days 11:44:28.971615
我必须得到类似的东西(意思是上面的年输出):
4,8
(or 5)
感谢任何帮助!
PS.: 我想避免循环系列,我相信路径会给我一个想要的解决方案,但由于有一个大系列我想避免这种方式。
这是一种方法:
import pandas as pd, numpy as np
df = pd.DataFrame({'date': ['2009-06-15 00:00:00']})
df['years'] = (pd.to_datetime('now') - pd.to_datetime(df['date'])) / np.timedelta64(1, 'Y')
# date years
# 0 2009-06-15 00:00:00 8.713745
几天前我在我的项目中遇到了同样的问题现在我已经尝试过这些,
from dateutil.relativedelta import relativedelta
from datetime import date
now = date.today()
some_date = date(df['some_date'])
rdelta = relativedelta(now, some_date)
print('diff in years - ', rdelta.years)
print('remaining months - ', rdelta.months)
print('remaining days - ', rdelta.days)
它应该以年为单位打印差异