我是一名熊猫新手但在SQL方面还不错。我经常在SQL中使用的一个函数是:
YEAR(date_format_data) = (YEAR(GETDATE())-1)
这将获得去年的所有数据。有人可以帮我理解如何在Pandas中做同等的事情吗?
以下是一些示例数据:
Date Number
01/01/15 1
01/02/15 2
01/01/15 3
01/01/16 2
01/01/16 1
这是我对代码的最佳猜测:
df = df[YEAR('Date') == (YEAR(GETDATE()) -1)].agg(['sum'])
此代码将返回值“3”。
提前感谢你的帮助,我很难搞清楚我确定的很简单。
我
答案 0 :(得分:2)
我认为你可以这样做:
prev_year = pd.datetime.today().year - 1
df.loc[df['Date'].dt.year == prev_year]
只有当.dt.year
列属于Date
dtype时, PS datetime
访问者才有效。如果不是这种情况,您可能希望首先将该列转换为datetime
dtype:
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')
答案 1 :(得分:0)
对于pandas,请先按pd.to_datetime
将日期列转换为时间戳df['Date2'] = pd.to_datetime(df['Date'])
(pd.to_datetime
有一个格式参数来指定输入日期格式)然后你有
df['Date2'].year