【问题标题】:Creating a conditional loop in Numpy/Pandas在 Numpy/Pandas 中创建条件循环
【发布时间】:2020-07-14 12:42:39
【问题描述】:
这里绝对是新手......
我有一个包含费用数据列表的数据集1
我想创建一个循环来确定该人比前一天花费更多并且也比第二天花费更多的日期。在这样做时,我希望它要么打印日期和金额(费用),要么创建一个新列,读取真/假。
我应该使用 Numpy 还是 Pandas?
我在想一些类似的东西:今天 = i 昨天 = i-1 和明天 = i+1
...然后继续创建一个循环
【问题讨论】:
标签:
python
pandas
numpy
loops
【解决方案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