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 年中工作?
答案 0 :(得分:0)
对于您真正想要做什么仍然感到困惑。
但对于您的情况,我的建议是您可以按名称选择列并转置表格。 然后您可以对沿行轴的值求和。
在 DataFrame 上花费的时间并不多。
在我看来,DataFrame 中跨 col 轴的操作总是比跨行轴更难。 由于在行操作中,可以使用 .query() 函数轻松过滤他们想要的条目。 但不是在 col 方向。