Pandas 将每日数据转换为每月数据,并获取月份中的最后一个值
我的数据由属于特定月份和年份的每日数据组成,如下所示 我希望将所有每日数据转换为每月数据,并希望获得该月的最后一个值作为该月数据的返回值 例如:Pandas 将每日数据转换为每月数据,并获取月份中的最后一个值,pandas,dataframe,Pandas,Dataframe,我的数据由属于特定月份和年份的每日数据组成,如下所示 我希望将所有每日数据转换为每月数据,并希望获得该月的最后一个值作为该月数据的返回值 例如: AccoutId, Date, Return 1 2016-01 -4.1999 (Because this return value is last value of january 1/29/16) 1 2016-02 0.19 (Same here last value of fe
AccoutId, Date, Return
1 2016-01 -4.1999 (Because this return value is last value of january 1/29/16)
1 2016-02 0.19 (Same here last value of february 2/29/16)
and so on
我看过一些关于将日数据转换为月数据的主题,但问题是,在将日数据转换为月数据后,它们将该月的平均值()或总和()作为返回值。相反,我希望该月的最后一个返回值作为返回值。您可以按
AccountId
和年-月分组。首先转换为datetime,然后将格式设置为年-月,如下所示:df['Date'].dt.strftime(“%Y-%m”)
。然后只需使用last()
:
样本数据:
In[1]:
AccountId Date Return
0 1 1/7/16 15
1 1 1/29/16 10
2 1 2/1/16 25
3 1 2/15/16 20
4 1 2/28/16 30
df['Date'] = pd.to_datetime(df['Date'])
df = df.groupby(['AccountId', df['Date'].dt.strftime('%Y-%m')])['Return'].last().reset_index()
df
Out[1]:
AccountId Date Return
0 1 2016-01 10
1 1 2016-02 30
@RutkayKarabulak change
df
在我对数据帧名称的回答中。您不应该收到该错误。你的数据框的名字是什么?哦,好的,我现在已经做了,我只是打了一些错字,就是这样。非常感谢你,大卫!这是一个标准的问题,实际上与机器学习无关-请不要发送不相关的标签(已删除)。
In[1]:
AccountId Date Return
0 1 1/7/16 15
1 1 1/29/16 10
2 1 2/1/16 25
3 1 2/15/16 20
4 1 2/28/16 30
df['Date'] = pd.to_datetime(df['Date'])
df = df.groupby(['AccountId', df['Date'].dt.strftime('%Y-%m')])['Return'].last().reset_index()
df
Out[1]:
AccountId Date Return
0 1 2016-01 10
1 1 2016-02 30