如何在 python 中为 excel 文件应用 if/else 逻辑? (日期)
Posted
技术标签:
【中文标题】如何在 python 中为 excel 文件应用 if/else 逻辑? (日期)【英文标题】:How to apply if/else logic in python for an excel file? (dates) 【发布时间】:2021-08-27 06:45:18 【问题描述】:strong text我得到了一个包含日期的 Excel 文件,从 2019 年到 2021 年。我想应用某些规则,比如销售是在 2019 年 5 月 4 日到09.05.2019 然后是促销号 1,等等。输出在这里
期望的结果
促销文件
【问题讨论】:
【参考方案1】:使用Series.between
作为掩码并通过numpy.where
设置新值:
import numpy as np
df['date'] = pd.to_datetime(df['date'], dayfirst=True)
mask = df['date'].between('2019-05-04', '2019-05-09')
df['new'] = np.where(mask, 'promo number 1', 'no promo')
如果有多个值,例如在字典中:
d =
'25% sales': ('2019-04-29','2019-04-30'),
'40% sales': ('2019-05-12','2019-05-15'),
'50% sales': ('2019-05-18','2019-05-22')
df['date'] = pd.to_datetime(df['date'], dayfirst=True)
for val, (date1, date2) in d.items():
mask = df['date'].between(date1, date2)
df.loc[mask, 'new'] = val
df['new'] = df['new'].fillna('no promo')
【讨论】:
谢谢!我应该通过导入 numpy 库在 jupyter 中运行此代码吗? @Arty - 当然,添加到答案中。 谢谢!!有没有办法放很多日期?就像我收到了 100 多个不同日期的促销活动一样,只是想知道是否有更简单的方法 @Arty - 输入看起来如何?一些日期时间对?一些循环? 添加到原始问题以上是关于如何在 python 中为 excel 文件应用 if/else 逻辑? (日期)的主要内容,如果未能解决你的问题,请参考以下文章
Python应用实战-如何通过python对Excel进行常规性操作