首页 > 解决方案 > 在 Numpy/Pandas 中创建条件循环

问题描述

绝对新手在这里....

我有一个包含费用数据列表的数据集1 我想创建一个循环来识别该人花费超过前一天以及花费超过第二天的日期。在这样做时,我希望它要么打印日期和金额(费用),要么创建一个新列,读取真/假。我应该使用 Numpy 还是 Pandas?

我在想一些类似的东西:今天=我昨天=i-1和明天=i+1……然后继续创建一个循环

标签: pythonpandasnumpyloops

解决方案


您是否正在寻找这样的东西:

# 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

推荐阅读