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