python - 在 Numpy/Pandas 中创建条件循环
问题描述
绝对新手在这里....
我有一个包含费用数据列表的数据集1 我想创建一个循环来识别该人花费超过前一天以及花费超过第二天的日期。在这样做时,我希望它要么打印日期和金额(费用),要么创建一个新列,读取真/假。我应该使用 Numpy 还是 Pandas?
我在想一些类似的东西:今天=我昨天=i-1和明天=i+1……然后继续创建一个循环
解决方案
您是否正在寻找这样的东西:
# sample data
np.random.seed(4)
df = pd.DataFrame({'Date': pd.date_range('2020-01-01', '2020-01-10'),
'Name': ['Some Name', 'Another Name']*5,
'Price': np.random.randint(100,1000, 10)})
# groupby name
g = df.groupby('Name')['Price']
# create a mask to filter your dataframe where the current price is grater than the price above and below
mask = (g.shift(0) > g.shift(1)) & (g.shift(0) > g.shift(-1))
df[mask]
Date Name Price
3 2020-01-04 Another Name 809
4 2020-01-05 Some Name 997
7 2020-01-08 Another Name 556
推荐阅读
- javascript - 嵌套标签时查找元素包含文本
- java - Socket IO事件多次触发NodeJS
- google-data-studio - 找不到组件 ID:gs://
- c# - 如何从 UTC 偏移量获取 DateTime
- regex - 重型 3GB csv 数据库的 sed/awk 处理问题
- .htaccess - .htaccess 将带有查询参数的特定不存在文件重定向到新的 url
- swift - 如何
在 SwiftSoup 中使用换行符更改标签? - c# - Asp.Net Core - Web 服务的可配置属性路由
- php - 致命错误:未捕获的错误:调用未定义的函数 mysqli 你能帮帮我吗
- sql - Oracle SQL - 使用选择生成聚合行