我有一个数据框,它为我提供了各种文章的每日数量水平。我想要一个数据框,它可以提供每篇文章每月最后一天的数量水平。
原始df:
目标 df:
有什么办法可以获取吗?
我尝试使用 tail() 按项目和日期进行分组,但没有成功。
最佳答案
IIUC 每年需要最新值 Grouper
与 GroupBy.tail
:
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df = df.groupby(['item', pd.Grouper(freq='Y', key='Date')]).tail(1)
print (df)
item Date Quantity
6 cola 2021-12-31 0
8 bat 2021-12-25 1186
9 apple 2021-12-26 1377
因为每月的输出不同:
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df = df.groupby(['item', pd.Grouper(freq='m', key='Date')]).tail(1)
print (df)
item Date Quantity
0 apple 2021-09-23 2143
1 bat 2021-09-21 2444
2 cola 2021-09-15 1512
3 apple 2021-10-21 2906
4 bat 2021-10-04 2730
5 cola 2021-10-16 2449
6 cola 2021-12-31 0
8 bat 2021-12-25 1186
9 apple 2021-12-26 1377
关于python - 有没有办法在数据框中找到每月最后一天的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70517474/