我想按月分组我的数据,选择每个月的最后一行。
数据:
>>> df
Date
1985-10-14 46.50
1985-10-23 47.50
1985-10-24 46.88
1985-11-21 50.25
1985-11-22 50.38
1985-11-25 50.38
>>> df.groupby(pd.TimeGrouper('M')).nth(-1)
Date
1985-10-31 46.88
1985-11-30 50.38
预期结果:
1985-10-24 46.88
1985-11-25 50.38
答案 0 :(得分:1)
我认为您首先需要mstest /testcontainer:TestProject.dll /category:"Integration"
创建DatetimeIndex
列,然后reset_index
使用resample
,最后删除index
:
print (df)
col
Date
1985-10-14 46.50
1985-10-23 47.50
1985-10-24 46.88
1985-11-21 50.25
1985-11-22 50.38
1985-11-25 50.38
df = df.reset_index().resample('M', on='Date').last().reset_index(drop=True)
print (df)
Date col
0 1985-10-24 46.88
1 1985-11-25 50.38
对于较旧版本,请从索引创建列:
df = df.assign(Date=df.index).resample('M').last().reset_index(drop=True)
print (df)
col Date
0 46.88 1985-10-24
1 50.38 1985-11-25
df['Date'] = df.index
df = df.resample('M').last().reset_index(drop=True)
print (df)
col Date
0 46.88 1985-10-24
1 50.38 1985-11-25