【发布时间】:2021-05-24 06:58:17
【问题描述】:
df 有以下列,
col1 | col2 | col3 | Jan-19 | Feb-19 | Mar-19 | Apr-19 | May-19 | Jun-19 | Jul-19 | Aug-19 | Sep-19 | Oct-19 | Nov-19 | Dec-19 | Jan-20 | Feb-20 | Mar-20 | Apr-20 | May-20 | Jun-20 | Jul-20 | Aug-20 | Sep-20 | Oct-20 | Nov-20 | Dec-20
ab | cd | | 10 | 12 | 14 | 15 | 16 | 12 | 13 | 7 | 82 | 76 | 100 | 98 | 10 | 12 | 14 | 15 | 16 | 12 | 13 | 7 | 82 | 76 | 100 | 98
月份列有数字。我想在以下条件下总结月份列,
条件,
-
如果
datetime.now().strftime('%b-%Y')是从 6 月 19 日(例如)到 10 月 19 日的任何内容,那么我想对从 10 月 19 日到 2 月 20 日的月份列求和。如果是从 6 月 20 日到 10 月 20 日的任何内容,则为从 10 月 20 日到 2 月 21 日的列总和,依此类推。 -
如果
datetime.now().strftime('%b-%Y')是从 11 月 19 日到 5 月 19 日的任何时间,那么我想对从 3 月 20 日到 9 月 20 日的月份列求和。如果是从 11 月 20 日到 5 月 20 日的任何时间,那么列的总和是从 3 月 21 日到 9 月 21 日等等。
最后应该有一个Total列。
col1 | col2 | col3 | Jan-19 | Feb-19 | Mar-19 | Apr-19 | May-19 | Jun-19 | Jul-19 | Aug-19 | Sep-19 | Oct-19 | Nov-19 | Dec-19 | Jan-20 | Feb-20 | Mar-20 | Apr-20 | May-20 | Jun-20 | Jul-20 | Aug-20 | Sep-20 | Oct-20 | Nov-20 | Dec-20 | Total
ab | cd | | 10 | 12 | 14 | 15 | 16 | 12 | 13 | 7 | 82 | 76 | 100 | 98 | 10 | 12 | 14 | 15 | 16 | 12 | 13 | 7 | 82 | 76 | 100 | 98 | 296
有没有办法为此创建一个通用条件,使其适用于 x 月和 y 年?
【问题讨论】:
-
澄清一下 - 您想根据今天的日期对各列求和吗?
-
没错。
-
如果今天的日期不是 2019 年,您希望发生什么?我对逻辑以及如何解释今天的日期感到困惑。
datetime.now().strftime('%b-%y') == 'Feb-21' -
为了更清楚,我已经编辑了这个问题。还在纠结吗?