如何在 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 中为 64 位机器创建安装程序?

Python应用实战-如何通过python对Excel进行常规性操作

如何在 Excel 中为函数创建引用变量?

如何在 Excel 2010 中为切片器的每个值打印图表?

如何在 Excel VSTO 加载项中为 OnUndo 调用 C# 方法?

如何在 Visual Studio Code 中为 Python 设置虚拟环境?