首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数据框中提取上周数据并找到最大值

从数据框中提取上周数据并找到最大值
EN

Stack Overflow用户
提问于 2020-11-03 16:10:54
回答 2查看 27关注 0票数 0

我有一个下面的数据框,我想提取最近一周的数据并找到该周的最大值,我该怎么做?

代码语言:javascript
复制
Date        Value
2020-10-4   2768
2020-10-3   3032
2020-10-2   2264
2020-10-1   2723
2020-10-0   3407
2020-10-1   11660
2020-10-2   13551
2020-10-3   8031
2020-10-4   8183
2020-10-5   6186
2020-10-6   9394
2020-10-7   11498
2020-10-8   43214
2020-10-9   5538
2020-10-10  21590
2020-10-11  5356
2020-10-12  8371
2020-10-13  21999
2020-10-14  11729
2020-10-15  11983
2020-10-16  6056
2020-10-17  13360
2020-10-18  12258
2020-10-19  11437
2020-10-20  10506
2020-10-21  39793
2020-10-22  1131
2020-10-23  1356
2020-10-24  6891
2020-10-25  57736
2020-10-26  14274
2020-10-27  3884
2020-10-28  12164
2020-10-29  6936
2020-10-30  11705
EN

回答 2

Stack Overflow用户

发布于 2020-11-03 16:15:49

max中使用Series.last

代码语言:javascript
复制
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')

m = df.set_index('Date')['Value'].last('W').max()
print (m)
14274

编辑:

代码语言:javascript
复制
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')

s = df.set_index('Date')['Value'].last('W')
print (s)
Date
2020-10-26    14274
2020-10-27     3884
2020-10-28    12164
2020-10-29     6936
2020-10-30    11705
Name: Value, dtype: int64

df = s[s == s.max()].reset_index()
print (df)
        Date  Value
0 2020-10-26  14274

编辑:如果需要持续7天:

代码语言:javascript
复制
s = df.set_index('Date')['Value'].last('7d')
print (s)
Date
2020-10-24     6891
2020-10-25    57736
2020-10-26    14274
2020-10-27     3884
2020-10-28    12164
2020-10-29     6936
2020-10-30    11705
Name: Value, dtype: int64

df = s[s == s.max()].reset_index()
print (df)
        Date  Value
0 2020-10-25  57736

如果需要从今天起持续7天:

代码语言:javascript
复制
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')

df = df[(pd.Timestamp('now').floor('d') - df['Date']).dt.days < 7]

df = df[df['Value'] == df['Value'].max()]
print (df)
         Date  Value
32 2020-10-28  12164    
票数 3
EN

Stack Overflow用户

发布于 2020-11-03 16:15:12

首先要做的是创建一组要选择的日期,然后使用它过滤数据帧。这应该可以做到这一点(也就是说,如果您的日期是datetime格式的话……)

代码语言:javascript
复制
import pandas as pd
import datetime as dt
df = pd.DataFrame(...)
today = dt.date.today()
last_week = {today-dt.timedelta(x) for x in range(7)}
df = df[df.Date.isin(last_week)]
max = df[df.Date==df.Date.max()]
print(df)
print(max)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64658972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档